如何在DynamicReports和JasperReports中获得相同样式
我想找到具有相同样式的dynamicReports和jasperReports的最佳解决方案。我开始使用dynamicReports,但是我发现很难在那里创建不寻常的报告。在iReport图形编辑器中执行该操作要容易得多。所以现在我有50%的动态报告和Jasper 50%的报告。如何在DynamicReports和JasperReports中获得相同样式
现在我无法解决样式问题。我在Template类中创建了样式,字体等,并将其用于DynamicReports。经过一番魔像:
.setName("cellCenterStyle");
template().setColumnStyle(cellStyle)
我能够使用他们的碧玉,但由于某些选项仍不能正常工作,例如这不是一个完整的解决方案:
.setDetailEvenRowStyle(Template.evenIntensivStyle)
正在与动态,但碧玉忽略了。
所以,问题:
我能使用动态和碧玉与结构清晰,没有不必要的“魔术”一样的风格。 我喜欢* .css风格的解决方案,但任何帮助将不胜感激。
使用参数来引用样式文件的相对(或绝对)路径。主报告,例如,可能包含:
<template><![CDATA[$P{P_REPORT_STYLES_PATH} + "FontStyle.jrtx"]]></template>
<parameter name="P_REPORT_BASE" class="java.lang.String">
<defaultValueExpression><![CDATA[""]]></defaultValueExpression>
</parameter>
<parameter name="P_REPORT_RESOURCES_PATH" class="java.lang.String">
<defaultValueExpression><![CDATA[$P{P_REPORT_BASE} + "resources/"]]></defaultValueExpression>
</parameter>
<parameter name="P_REPORT_STYLES_PATH" class="java.lang.String">
<defaultValueExpression><![CDATA[$P{P_REPORT_RESOURCES_PATH} + "styles/"]]></defaultValueExpression>
</parameter>
这允许在iReport的(或的JasperSoft工作室)的报告,以引用的相对路径报告格式,如:
resources/styles/FontStyle.jrtx
此路径与报告的.jasper
文件位置有关。
然后,在DynamicJasper中,您可以传入一个报告参数。在DynamicJasper的API调用可能不符合API调用以下JasperReports的库调用,但它应该是足够的相似让整个想法:
reportParameters.put("P_REPORT_BASE", "/home/user/dev/reports/workspace");
JasperFillManager.fillReport(..., reportParameters, dataSource);
假设/home/user/dev/reports/workspace
对于.jasper
文件的位置,以及iReport/Jaspersoft Studio的工作空间位置,然后DynamicJasper和报表开发环境将查找并使用相同的样式文件。
的完整路径的样式文件,在这个例子中,将是:
/home/user/dev/reports/workspace/resources/styles/FontStyle.jrtx
你的目录路径,当然会有所不同。
此时,您可以在两种环境中引用相同的样式。另请参见:
谢谢你,戴夫,我会用它 – quento
如果它适合你,请点击复选标记(接受按钮)。 –
它不是一个确切的重复,但我认为它有你要找的,或者至少是一个很好的起点是什么。 –
@DaveJarvis对我来说,他似乎喜欢css风格的解决方案,这是外部风格......他只需要弄清楚如何加载动态报告 –
@PetterFriberg:是的,这是问题的一部分。第二个问题是,其中一半在DynamicJasper中,另一半在iReport中使用。另一个答案没有解决如何从两个不同的报告环境引用同一组样式。 –