gpt4 book ai didi

java - 基于参数的 birt 中的水印

转载 作者:行者123 更新时间:2023-11-29 05:26:16 25 4
gpt4 key购买 nike

我有一张发票,我想在预览模式下显示它并带有水印。我已将该报告与我的 Web 应用程序 (Spring MVC) 集成在一起。

有什么解决办法吗?

编辑:我想从数据集(表:invoiceheader)中选择一个值,并使用该值来决定是否显示/不显示水印。我无法从 Birt 脚本中选择该值。能否请您指导..

抱歉.. 客户要求以不同的方式识别事实,而不是通过传递参数。

谢谢

最佳答案

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

enter image description here

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

if (!params["useWatermark"].value){
reportContext.getDesignHandle().findMasterPage("Simple MasterPage").setProperty("backgroundImage", "");
}

如果参数设置为 false,此脚本将删除水印。默认情况下,母版页被命名为“简单母版页”,但如果您重命名了它或者如果报表中定义了多个母版页,您应该相应地调整脚本。

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

  • 创建一个包含一个单元格的网格,并将页面的所有内容放入其中
  • 将水印设置为网格的背景图像
  • 在“Outline/variables”分支中创建一个报表变量“useWatermark”(见下图),根据需要设置默认值为true/false
  • 选择数据集 invoiceHeader -> 脚本选项卡 -> onFetch,并影响来自 boolean 数据集列或任何返回真/假的表达式的变量:

    vars["useWatermark"]=row["myBooleanDatasetColumn"];

这个数据集必须在报表体的某处使用,否则不会被触发,变量也不会被初始化

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

    if (!vars["useWatermark"]){ this.getStyle().backgroundImage="";

enter image description here

关于java - 基于参数的 birt 中的水印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22573549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com