Java 基于参数的birt水印

Java 基于参数的birt水印,java,spring,report,birt,Java,Spring,Report,Birt,我有一张发票,我想在预览模式下用水印显示该发票。我已将该报告与我的web应用程序(SpringMVC)集成 有解决办法吗 编辑:我想从数据集中选择一个值(表:invoiceheader),并使用该值决定是否显示水印。我无法从Birt脚本中选择该值。你能给我引路吗 对不起。。客户要求采用与传递参数不同的方式来识别事实 谢谢您需要在发票的.rpt设计中声明一个报告参数。例如,我们将其命名为“useWatermark”,并将数据类型设置为boolean,将默认值设置为true 在设计器->脚本选项卡

我有一张发票,我想在预览模式下用水印显示该发票。我已将该报告与我的web应用程序(SpringMVC)集成

有解决办法吗

编辑:我想从数据集中选择一个值(表:invoiceheader),并使用该值决定是否显示水印。我无法从Birt脚本中选择该值。你能给我引路吗

对不起。。客户要求采用与传递参数不同的方式来识别事实


谢谢

您需要在发票的.rpt设计中声明一个报告参数。例如,我们将其命名为“useWatermark”,并将数据类型设置为boolean,将默认值设置为true

在设计器->脚本选项卡->beforeFactory的大纲视图中选择报表根目录

if (!params["useWatermark"].value){
    reportContext.getDesignHandle().findMasterPage("Simple MasterPage").setProperty("backgroundImage", "");
}
如果参数设置为false,此脚本将删除水印。默认情况下,母版页命名为“简单母版页”,但如果已重命名该母版页或报告中定义了多个母版页,则应相应调整脚本

编辑:如果我们需要从数据集中提取信息,那么我们不能使用母版页,我们必须使用网格

  • 用一个单元格创建一个网格,并将页面的所有内容放入其中
  • 将水印设置为网格的背景图像
  • 在“Outline/variables”分支中创建一个报告变量“useWatermark”(参见下图),根据需要将默认值设置为true/false
  • 选择dataset invoiceHeader->script tab->onFetch,并从布尔数据集列或任何返回true/false的表达式中影响变量:

    vars[“useWatermark”]=行[“myBooleanDatasetColumn”]

此数据集必须在报表正文中的某个位置使用,否则它将不会被触发,变量也不会被初始化

  • 选择网格->脚本选项卡->onRender

    如果(!vars[“useWatermark”]){ this.getStyle().backgroundImage=“”; }


当前您是如何显示此水印的?作为母版页的背景图像,还是作为网格的背景图像?或者别的什么?我在母版上使用背景图片。如果有更好的选择,我可以更改以下内容:这确实有助于添加水印,但我想从数据集列中选择一个值。你能告诉我如何为一个条件选择这个值吗。。这很酷。。我想这部分和你的评论也证实了这一点。。但我在这里遇到的问题是useWatermark变量将从数据库表中的列中获取值,而不是从用户输入中获取值。