帆软报表如何灵活控制水印的显示

发布时间:2023年12月30日

在帆软报表中如果要显示水印,如果要全部都要显示,只需要到决策系统--安装设置中打开水印开关。如果想要某个报表显示水印,可以在设计器的水印设置中为该报表设置水印。

但是如果碰到这种需求,比如某些人或者某些角色需要显示水印,其他人不显示。或者是预览报表需要显示水印,导出不需要水印,或者显示不需要,导出需要。这时产品的功能就实现不了了。

经过跟踪源码得知,报表渲染的结果类ResultWorkBook中有个WatermarkAttr属性,那么思路就是预览或者导出时将这个属性置空或者加上就能达到目的。

经过分析发现报表预览时,这个属性是在MemXPageWorkBookExecutor类的dealWithExecutedAttr方法中来做的,填报是在WriteWorkBookExecutor类的dealWithExecutedAttr类中实现的。可以通过二开接口ActorProvider来提供自己的Executor类来替换那个方法里的逻辑。

比如:替换逻辑如下

    @Override
    protected void dealWithExecutedAttr(ResultWorkBook resultWorkBook) {
        if (resultWorkBook != null) {
            Iterator it2 = th
文章来源:https://blog.csdn.net/sixingbugai/article/details/135309340
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。