我是在我们的Java应用程序中使用JasperReports生成.pdf或.xls报告的开发团队的一员。目前,我们正在尝试使用预定义的打印设置和宏来扩展我们的.xls报告。
我发现了报告属性net.sf.jasperreports.export.xls.workbook.template,其描述似乎完全符合此要求。在我们的例子中,问题现在似乎是,这个属性不能基于表达式或输入参数设置(或者我做错了吗?)。
我们的服务器端架构(Java)是这样设计的:我们有一个通用的JasperReportController,它处理每个.jasper / .jrxml文件的准备和导出。报告使用默认属性和参数填充,报告设计者可以在报告中使用这些属性和参数。根据语言和客户,一些报告已经有动态标题图像。使用JasperReports强大的表达功能可以轻松实现这一点。但是,(全局)报告属性似乎无法做到这一点。
我们需要什么:
这引出了我的问题:有没有办法将报告的属性指定为表达式,还是有其他方法可以解决我的要求?
解决方案应该是通用的,以便报表设计者可以在.jrxml文件中定义动态.xls模板,并且不需要修改Java代码。
答案 0 :(得分:0)
在填写报告之前试试这个:
String thePath = "... get it from where you like also the jasper report see property map below...."
JRPropertiesMap properties = jasperReport.getPropertiesMap();
properties.put(XlsExporterConfiguration.PROPERTY_WORKBOOK_TEMPLATE,thePath);
结论您修改了通用JasperController
,检查报告中是否存在某个属性,请求网址,报告您所做的事情的名称,然后在逻辑集的基础上PROPERTY_WORKBOOK_TEMPLATE
为选定的模板,然后填写报告。