JasperReports 是否提供了一些 Java 中的函数,我可以使用它们并更改我的 jrxml。
例如更改字体、添加新的详细信息部分、添加静态文本、删除某些内容、添加图表等。
我想做它们
someObject.setFont("Arial");
这会将对象的字体设置为 Arial,我还可以在 jrxml 中看到相应的更改。
我知道iReport可以轻松地做到这一点,无需任何函数调用,但我只在构建一些应用程序时才需要使用Java函数。
如果是,请提供一个简单的示例或网站、链接,我可以从中学习。 JasperReports API 文档不太好。
最佳答案
是的,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");
关于java - 简单的 JasperReport 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279434/