Java 简单JasperReport查询

Java 简单JasperReport查询,java,jasper-reports,Java,Jasper Reports,JasperReports是否提供了一些Java函数,我可以使用这些函数并更改我的jrxml 比如更改字体、添加新的细节部分、添加静态文本、删除某些内容、添加图表等 我想做他们喜欢的事 someObject.setFont("Arial"); 这将把对象的字体设置为Arial,我还可以在jrxml中看到相应的变化 我知道iReport不需要任何函数调用就可以轻松实现这一点,但我只希望在构建某些应用程序时使用Java函数 如果是,请提供一个简单的例子或网站,我可以从中学习的链接。JasperRe

JasperReports是否提供了一些Java函数,我可以使用这些函数并更改我的jrxml

比如更改字体、添加新的细节部分、添加静态文本、删除某些内容、添加图表等

我想做他们喜欢的事

someObject.setFont("Arial");
这将把对象的字体设置为Arial,我还可以在jrxml中看到相应的变化

我知道iReport不需要任何函数调用就可以轻松实现这一点,但我只希望在构建某些应用程序时使用Java函数


如果是,请提供一个简单的例子或网站,我可以从中学习的链接。JasperReports API文档不是很好。

是的,JasperReports有一个允许您这样做的API。这个类的基础是类,它表示内存中的报告。您应该查看,它广泛使用API,仅使用java从头开始构建报告。看过这个例子后,我发现通过从类中探索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");
}
有关如何添加新标注栏的信息,请参见。在最近的版本中,这样做的方法发生了变化,因此许多在线示例和教程已经过时

修改/创建报告后,您可以按如下方式保存或编译报告:

JasperCompileManager.writeReportToXmlFile(design, "path/to/your/output.jrxml");
JasperCompileManager.compileReportToFile(design, "path/to/your/output.jasper");

那么您本质上是想以编程方式操作JRXML文件?您可以通过使用您喜爱的XMLDOM解析器解析JRXML文件(毕竟是XML),操作DOM对象表示,并编写JRXML来实现这一点again@mkl,是的,我当然可以这样做,但这不是很麻烦和容易出错。这就是为什么我需要一个API,所以当一个客户端说“嘿,我想更改网页上的字体颜色”时,我会向服务器发送请求,在那里我将使用java函数,只需说“更改字体”(…),其余的都会由它来处理。我希望我现在明白了。:)非常感谢将军乔恩:)我也在找同样的。如果你能添加一些我可以学习的链接,那将是非常棒的!!。也有任何错误检查,如如果客户提供了错误的波段尺寸。它是否会引发一些异常,我可以从中确定故障在哪里,如果不是,我将不得不手动检查,感谢再次出现问题。不幸的是,我没有任何教程的链接;我主要是通过反复试验和javadoc来确定我需要做什么。编译报表时,如果设计无效,它将抛出JREException,但要将错误消息与应用程序中的输入等同起来可能并不容易。在进行设计更改时,您可能希望在自己的代码中进行验证和反馈。@GenericJon您好,如何找到元素的键?谢谢。@您可以自己在JRXML中设置密钥
key
是每个元素内部的
reportElement
标记的属性。