JasperReports 导入标签
最后修改日期:2024 年 2 月 12 日
在本文中,我们将展示如何在 JasperReports 模板中使用 import 标签。
JasperReports 是一个开源报告库。它可以创建各种格式的报告,包括 PDF、HTML、XLS 或 CSV。JasperReports 创建面向页面、可直接打印的文档。
import
标签用于将 Java 类导入到报表中。它消除了在报表表达式中指定完整类名的需要。
<import value="java.time.LocalDateTime"/>
此代码将 LocalDateTime
类导入到报表中。现在我们可以使用它,而无需指定完全限定名。类名在 value
属性中指定。
示例
该示例使用 import
语句。
report.gvy
package com.zetcode @Grab(group='net.sf.jasperreports', module='jasperreports', version='6.21.0') @Grab(group='com.github.librepdf', module='openpdf', version='1.3.39') import net.sf.jasperreports.engine.JasperCompileManager import net.sf.jasperreports.engine.JasperFillManager import net.sf.jasperreports.engine.JasperExportManager import net.sf.jasperreports.engine.JREmptyDataSource def xmlFile = 'report.xml' def jrReport = JasperCompileManager.compileReport(xmlFile) def params = [:] def jrPrint = JasperFillManager.fillReport(jrReport, params, new JREmptyDataSource()) JasperExportManager.exportReportToPdfFile(jrPrint, 'report.pdf')
Groovy 代码将编译、填充并导出报表。
report.gvy
<?xml version = "1.0" encoding = "UTF-8"?> <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport xmlns = "http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report" topMargin="20" bottomMargin="20"> <import value="java.time.LocalDateTime"/> <detail> <band height="70"> <textField> <reportElement x="5" y="5" width="190" height="15"/> <textFieldExpression> <![CDATA[LocalDateTime.now()]]> </textFieldExpression> </textField> <textField> <reportElement x="5" y="45" width="190" height="15"/> <textFieldExpression> <![CDATA[java.time.Instant.now()]]> </textFieldExpression> </textField> </band> </detail> </jasperReport>
在报表中,我们使用了两个类:LocalDateTime
和 Instant
。第一个类已导入,可以直接使用,无需包名。第二个类必须使用完全限定名。
<import value="java.time.LocalDateTime"/>
我们将 LocalDateTime
导入到报表中。
<textFieldExpression> <![CDATA[LocalDateTime.now()]]> </textFieldExpression>
在 textFieldExpression
中,我们调用了 LocalDateTime.now
方法。
<textFieldExpression> <![CDATA[java.time.Instant.now()]]> </textFieldExpression>
在这里,我们使用了 Instant
类的完整名称:java.time.Instant
。
在本文中,我们展示了如何将 Java 类导入到报表表达式中以简化它们。