Jasper reports 如何从报表中访问jasper报表属性,以指定每个开发人员计算机上的根目录位置?

Jasper reports 如何从报表中访问jasper报表属性,以指定每个开发人员计算机上的根目录位置?,jasper-reports,ireport,Jasper Reports,Ireport,我有一个报告,其中我将ROOT_DIR定义为一个参数。当我在servlet中呈现报告时,我会传递这个消息 大概是这样的: <parameter name="ROOT_DIR" class="java.lang.String" isForPrompting="false"> <defaultValueExpression><![CDATA["/Some/Path/To/Reports"]]></defaultValueExpression>

我有一个报告,其中我将ROOT_DIR定义为一个参数。当我在servlet中呈现报告时,我会传递这个消息

大概是这样的:

 <parameter name="ROOT_DIR" class="java.lang.String" isForPrompting="false">
    <defaultValueExpression><![CDATA["/Some/Path/To/Reports"]]></defaultValueExpression>
</parameter>
<parameter name="IMAGES_DIR" class="java.lang.String" isForPrompting="false">
    <defaultValueExpression><![CDATA[$P{ROOT_DIR}+"/images"]]></defaultValueExpression>
</parameter>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
    <defaultValueExpression><![CDATA[$P{ROOT_DIR}+"/"]]></defaultValueExpression>
</parameter>

我的问题是,我们现在有更多的开发人员在处理这些报告,因此我想找到一种方法,避免每个人在提交到git workspace/home目录时都更改ROOT_DIR上的defaultValueExpression

我想我们可以在iReport中使用属性(Preferences->iReport->Jasper Report Properties选项卡),但我似乎找不到从defaultValueExpression引用这些值的方法


有没有办法从报表中访问这些属性?或者其他建议来实现这一点?

可以在资源包的帮助下完成

您可以创建资源文件,然后在语法的帮助下使用“变量”

样本 文件夹结构为:

reports images Number1.png 资源文件的名称是在报表的属性resourceBundle的帮助下设置的

在我的示例中,我设置了如下属性:
resourceBundle=“folders”

您可以这样做,例如在iReport中:

jrxml文件:


报告在iReport中的设计:

结果将是(通过iReport中的预览):

开发团队中的每个成员都可以更改属性文件中的路径(由ROOT\u DIR键设置),此解决方案将在不使用Java代码和模板重新编译的情况下工作


注释

  • 属性文件应位于类路径中
  • 关于……的信息

  • 该文件应称为folders.properties?并位于.jrxml文件旁边?我已在回答中添加了信息“资源束”必须在数据集上设置,例如
    报告->杂项->主数据集->资源束
    。必须在Jasper Report Studio(Eclipse)中搜索它。
    ROOT_DIR=/reports