templates - (Dynamic Jasper Reports) 从自定义 .jrxml 文件导入参数

标签 templates parameters jasper-reports dynamic-jasper

我正在使用 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 库降级到所有旧版本,但也无济于事。

如果有人能告诉我我做错了什么,我将不胜感激。

提前致谢。

最佳答案

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

params.get("paramName")

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

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

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

关于templates - (Dynamic Jasper Reports) 从自定义 .jrxml 文件导入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11471617/

相关文章:

java - 使用 JasperReportsViewResolver 和 Spring 4.x 将 pdf 保存在磁盘上

c# - 将 Jasper .jrxml 转换为 Microsoft .rdlc

c++ - 存储任何(但恒定)长度的 std::arrays 集

c++ - <未解析的重载函数类型> 带有成员函数指针和模板

c# - Request.QueryString[] 对比 Request.Query.Get() 对比 HttpUtility.ParseQueryString()

python - 在 Pytorch 中强制执行 nn.Parameter(矩阵)参数中的结构

c++ - 强制对象解除分配/超出范围以调用析构函数

c++ - 将 lambda 作为模板函数参数传递

Javascript - 具有可选参数作为对象的函数?

java - 获取文件路径不是apache tomcat路径