JasperReports 是否提供了 Java 中的一些功能,我可以使用它并更改我的jrxml。
喜欢更改字体,添加新的细节部分,添加静态文本,删除内容,添加图表等。
我想像
那样做someObject.setFont("Arial");
这会将对象的字体设置为Arial,我也可以看到jrxml中的相应变化。
我知道 iReport 在没有任何函数调用的情况下很容易做到这一点,但我只想在构建一些应用程序时使用 Java 函数。
如果是,请提供一个简单的示例或站点,我可以学习的链接。 JasperReports API doc不太好。
答案 0 :(得分:1)
是的,JasperReports有一个允许您执行此操作的API。这个的基石是JasperDesign类,它代表你的内存报告。您应该查看No XML Design Sample,它广泛使用API来仅使用java从头开始构建报告。一旦我看到这个例子,我发现通过从JasperDesign类中探索javadoc,我可以很容易地找到我需要在报告上更改元素的任何方法。
例如,更改元素字体的基本方法是首先将JRXML加载到JasperDesign对象中,按键找到元素,然后调用setFontName
:
JasperDesign design = JRXmlLoader.load("path/to/your/JRXML.file");
JRElement element;
for (JRBand band : design.getDetailSection().getBands()) {
element band.getElementByKey("elementName");
}
if (element != null) {
((JRDesignTextElement) element).setFontName("Arial");
}
有关如何添加新频段的信息,请参阅this question。在最近的版本中,这样做的方法发生了变化,因此许多在线示例和教程都已过时。
完成修改/创建报告后,您可以保存或编译报告:
JasperCompileManager.writeReportToXmlFile(design, "path/to/your/output.jrxml");
JasperCompileManager.compileReportToFile(design, "path/to/your/output.jasper");