gpt4 book ai didi

BIRT:将 XML 数据源文件指定为参数不起作用

转载 作者:行者123 更新时间:2023-12-05 00:01:28 31 4
gpt4 key购买 nike

使用 BIRT 设计器 3.7.1,可以很容易地为 XML 文件数据源定义报告;但是,输入文件名最初作为常量值写入 .rptdesign 文件。一开始很好,但在现实生活中没用。我想要的是通过 genReport.bat 脚本启动 BIRT ReportEngine,指定 XML 数据源文件的名称作为参数。这应该是微不足道的,但它却出奇的困难......

我发现的是:您可以使用 params["datasource"].value,而不是将 XML 数据源文件定义为报表定义中的常量,它将在运行时由参数值替换。此外,在 BIRT Designer 中,您可以定义报告参数(数据源)并为其指定默认值,例如“file://d:/sample.xml”。

然而,它不起作用。这是我在 Designer 中预览的结果:

Cannot open the connection for the driver: org.eclipse.datatools.enablement.oda.xml.
org.eclipse.datatools.connectivity.oda.OdaException: The xml source file cannot be found or the URL is malformed.

ReportEngine,以 'genReport.bat -p "datasource=file://d:/sample.xml"xx.rptdesign' 开头,几乎相同。
当然,我已经确保 XML 文件存在,并尝试了文件 URL 的不同拼写。那么,怎么了?

最佳答案

What I found out is this: Instead of defining the XML data source file as a constant in the report definition you can use params["datasource"].value, which will be replaced by the parameter value at runtime.



不,它不会 - 至少,如果您指定 &XML Data Source File 的值如 params["datasource"].value (而不是有效的 XML 文件路径)在设计时,那么您将在尝试运行报告时收到错误消息。这是因为它试图使用文字字符串 params["datasource"].value为文件路径,而不是 params["datasource"].value 的值.

相反,您需要使用事件处理程序脚本 - 特别是 beforeOpen脚本。

去做这个:
  • 在数据资源管理器中左键单击您的数据源。
  • 在主报表设计 Pane 中,单击脚本选项卡(而不是布局选项卡)。空白 beforeOpen脚本应该是可见的。
  • 将以下代码复制并粘贴到脚本中:
  • this.setExtensionProperty("FILELIST", params["datasource"].value);
    如果您现在运行报告,您应该会发现参数 datasource 的值。用于 XML 文件位置。

    您可以在 BIRT Exchange 上找到有关参数驱动的 XML 数据源的更多信息。 .

    关于BIRT:将 XML 数据源文件指定为参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9163934/

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