java - 简单的 JasperReport 查询

标签 java jasper-reports

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/

相关文章:

java - 如何在屏幕关闭时以节能方式检测音量按钮

java - 使用 BouncyCaSTLe 读取 JKS

java - Windows 上的 Java 准确 sleep

jasper-reports - 如何防止iReport-3.6.7表格中的重复值?

java - 如何制作由 jxl.jar 和 jasperReports.jar 生成的 excel 自动调整

java - 在 Jasperreports 中从服务器接收到多个不同的 Content-Disposition header

java - 为什么 "Source > Organize Imports"在 Eclipse 中不起作用?

java - Facelets 和 JSP 在同一个项目中?

java - 为什么我得到 Exception java.lang.NoClassDefFoundError org/codehaus/groovy/?

jasper-reports - 如何在Jasper报告中动态设置isIgnorePagination?