【问题标题】:(Dynamic Jasper Reports) Importing parameters from a custom .jrxml fil(动态 Jasper 报告)从自定义 .jrxml 文件导入参数
【发布时间】:2012-07-13 13:38:26
【问题描述】:

我正在使用 JasperReports(v.4.0.6) 和 DynamicJasperReports(v.4.0.1) 开发一个 Java 项目。我使用 Eclipse 的最新 iReport 插件生成了一个自定义 .jrxml。

在我的 .jrxml 报告中,我定义了两个参数,Java 程序将根据用户给出的一些输入来填充它们。

<parameter name="ReportTitle" class="java.lang.String"/>
<parameter name="DataFile" class="java.lang.String"/>

然后,正如tutorial 所述,由于我想维护几个预定义的参数,我从我的代码中调用 setTemplate() 方法。

String table_template = "report_templates/TableTemplate.jrxml";
Map<String, String> params; 
... 
DynamicReportBuilder drb = new DynamicReportBuilder();
drb.setTemplateFile(table_template, true, true, true, true);
DynamicReport dr = drb.build(); 

我将参数传递给模板执行以下操作:

params.put("ReportTitle", "CustomTitle");
params.put("DataFile", "CustomSubtitle");

但是,当我生成报告时,这两个字段显示为空白,好像 DJ 库没有预先保存插入值的位置。我没有收到任何其他错误或异常。

我尝试将 Jasper 库降级为旧版本,但也无济于事。

如果有人能给我一些关于我做错了什么的见解,我将不胜感激。

提前致谢。

【问题讨论】:

    标签: templates parameters jasper-reports dynamic-jasper


    【解决方案1】:

    在 jrxml 中已经定义了一个参数只意味着在你的自定义表达式中你可以得到它的值

    params.get("paramName")
    

    无需事先注册(drb.addParameter(...)

    您始终可以创建自定义表达式列并在自定义表达式代码中放置一个断点,并在运行时检查参数映射的内容!

    如果你在DJ之外使用参数,比如页眉或页脚文本,应该没有问题

    【讨论】:

    • 感谢您的回复!问题解决了。我从头开始构建模板,一切顺利! iReport的版本似乎不兼容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多