简单的JasperReport查询

时间:2014-06-18 07:25:02

标签: java jasper-reports

JasperReports 是否提供了 Java 中的一些功能,我可以使用它并更改我的jrxml。

喜欢更改字体,添加新的细节部分,添加静态文本,删除内容,添加图表等。

我想像

那样做
someObject.setFont("Arial");

这会将对象的字体设置为Arial,我也可以看到jrxml中的相应变化。

我知道 iReport 在没有任何函数调用的情况下很容易做到这一点,但我只想在构建一些应用程序时使用 Java 函数。

如果是,请提供一个简单的示例或站点,我可以学习的链接。 JasperReports API doc不太好。

1 个答案:

答案 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");