gpt4 book ai didi

java - Jasper 报告的附加页面

转载 作者:行者123 更新时间:2023-12-04 00:32:45 25 4
gpt4 key购买 nike

我想为每个使用 Jasper 生成的报告添加一个免责声明页面。这将是一个带有静态文本的页面,并且对于每个报告都是相同的。但它需要作为报告的最后一页或第一页生成。有没有办法创建这样的解决方案?

最佳答案

如果使用 Java,您可以使用批处理模式导出。您可以设置 JasperPrint 的列表在JASPER_PRINT_LIST的帮助下从多个模板生成一份报告的参数。

您可以将带有免责声明的报告添加到您的所有报告中。您不需要修改 jrxml 文件。

样本

例如,我们有报告 (singleReport1.jrxml) 和免责声明 (disclaimer.jrxml)。

报告 jrxml 文件是:

<?xml version="1.0" encoding="UTF-8"?>
<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="singleReport1" language="groovy" pageWidth="297" pageHeight="421" whenNoDataType="AllSectionsNoDetail" columnWidth="257" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<title>
<band height="175" splitType="Stretch">
<staticText>
<reportElement x="8" y="46" width="241" height="83"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="14"/>
</textElement>
<text><![CDATA[The First Report]]></text>
</staticText>
</band>
</title>
</jasperReport>

免责声明代码是:

<?xml version="1.0" encoding="UTF-8"?>
<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="disclaimer" language="groovy" pageWidth="297" pageHeight="421" whenNoDataType="AllSectionsNoDetail" columnWidth="257" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<title>
<band height="175" splitType="Stretch">
<staticText>
<reportElement x="8" y="46" width="241" height="83"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="14"/>
</textElement>
<text><![CDATA[The disclaimer]]></text>
</staticText>
</band>
</title>
</jasperReport>

iReport 第一份报告的设计是:

enter image description here

免责声明页面的设计是:

enter image description here

Java 代码:

public static void testReport() throws JRException {
JasperReport jasperReport1 = JasperCompileManager.compileReport(reportSourceReport1);
JasperReport jasperDisclaimer = JasperCompileManager.compileReport(reportSourceDisclaimer);
JasperPrint jasperPrintReport1 = JasperFillManager.fillReport(jasperReport1, null, new JREmptyDataSource());
JasperPrint jasperPrintDisclaimer = JasperFillManager.fillReport(jasperDisclaimer, null, new JREmptyDataSource());
List<JasperPrint> jasperPrints = Lists.newArrayList();
jasperPrints.addAll(Arrays.asList(jasperPrintReport1, jasperPrintDisclaimer));

JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrints);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, fileName);
exporter.exportReport();
}

结果将是(在 Adobe Reader 中打开的 pdf 文件):

enter image description here


注释:

关于 Batch Mode Export 的更多信息

关于java - Jasper 报告的附加页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20376058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com