- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 iReport 2.0.4 将一些数据从 Java 应用程序导出到 Excel。
我的问题是我的子报表在顶级报表下分组,但我希望它们是离散报表。目前看起来像这样
订单
-订单行 1
收据
-收据行 1
-收据行 2
发票
-发票行 1
-发票行 2
订单
-订单行 2
收据
-收据行 1
........
我希望它是一个电子表格中的 3 个独立报告。像这样
订单
所有订单行
收据
所有收据行
发票
所有发票行
目前,我将订单作为主报表,将收据和发票作为子报表,放入详细信息带订单中。
如果可能的话,获得此布局的最佳方法是什么?
最佳答案
您可以填写和编译三个单独的报告,然后使用 JRPdfExporterParameter.JASPER_PRINT_LIST使用如下代码构建单个报告的参数:
JasperReport ordersReport = JasperCompileManager.compileReport(srcOrdersReport);
JasperPrint jpOrdersReport = JasperFillManager.fillReport(ordersReport, ordersParamsMap, ordersDataSource);
JasperReport receiptsReport = JasperCompileManager.compileReport(srcReceiptsReport);
JasperPrint jpReceiptsReport = JasperFillManager.fillReport(receiptsReport, receiptsParamsMap, receiptsDataSource);
JasperReport invoicesReport = JasperCompileManager.compileReport(srcInvoicesReport);
JasperPrint jpInvoicesReport = JasperFillManager.fillReport(invoicesReport, invoicesParamsMap, invoicesDataSource);
List<JasperPrint> printList = new ArrayList<JasperPrint>();
printList.add(jpOrdersReport);
printList.add(receiptsReport);
printList.add(invoicesReport);
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, printList);
exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, output);
exporter.exportReport();
可以看看这个sample for your JR version - 2.0.4了解更多详情。
您可以在iReport 4.x 版本中将多个数据集添加到单个报告中。每个数据集都可能包含自己的查询。 list 组件可以使用自己的数据集。
在此示例中(使用 iReport 4.5.1 构建)我将 3 个list 组件放置到Title乐队:
<?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="several_queries" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<subDataset name="OrdersDataset">
<queryString>
<![CDATA[SELECT TOP 5 ORDERID AS orderId, SHIPNAME AS orderShipName, SHIPCOUNTRY AS orderShipCounty, SHIPCITY AS orderShipCity
FROM orders]]>
</queryString>
<field name="ORDERID" class="java.lang.Integer"/>
<field name="ORDERSHIPNAME" class="java.lang.String"/>
<field name="ORDERSHIPCOUNTY" class="java.lang.String"/>
<field name="ORDERSHIPCITY" class="java.lang.String"/>
</subDataset>
<subDataset name="ReceiptsDataset">
<queryString>
<![CDATA[SELECT TOP 10 ID AS receiptId, CITY AS receiptCity FROM receipts]]>
</queryString>
<field name="RECEIPTID" class="java.lang.Integer"/>
<field name="RECEIPTCITY" class="java.lang.String"/>
</subDataset>
<subDataset name="InvoicesDataset">
<queryString>
<![CDATA[SELECT TOP 7 ID AS invoiceId, TOTAL AS invoiceSum FROM invoices]]>
</queryString>
<field name="INVOICEID" class="java.lang.Integer"/>
<field name="INVOICESUM" class="java.math.BigDecimal"/>
</subDataset>
<subDataset name="dataset1"/>
<queryString>
<![CDATA[SELECT 1 as t FROM dual WHERE 1=2]]>
</queryString>
<field name="t" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="243" splitType="Stretch">
<componentElement>
<reportElement positionType="Float" x="0" y="44" width="555" height="19"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="OrdersDataset">
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
<jr:listContents height="19" width="555">
<textField>
<reportElement x="0" y="0" width="100" height="19"/>
<box leftPadding="10" rightPadding="10">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{ORDERID}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="100" y="0" width="100" height="19"/>
<box leftPadding="10" rightPadding="10">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{ORDERSHIPNAME}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="200" y="0" width="100" height="19"/>
<box leftPadding="10" rightPadding="10">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{ORDERSHIPCOUNTY}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="300" y="0" width="100" height="19"/>
<box leftPadding="10" rightPadding="10">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{ORDERSHIPCITY}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
<componentElement>
<reportElement positionType="Float" x="0" y="130" width="400" height="18"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="ReceiptsDataset">
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
<jr:listContents height="18" width="400">
<textField>
<reportElement positionType="Float" x="100" y="0" width="100" height="18"/>
<box leftPadding="10" rightPadding="10">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{RECEIPTCITY}]]></textFieldExpression>
</textField>
<textField>
<reportElement positionType="Float" x="0" y="0" width="100" height="18"/>
<box leftPadding="10" rightPadding="10">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{RECEIPTID}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
<staticText>
<reportElement positionType="Float" x="0" y="4" width="400" height="20"/>
<box topPadding="1" leftPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isBold="true" isItalic="true"/>
</textElement>
<text><![CDATA[Orders]]></text>
</staticText>
<staticText>
<reportElement x="0" y="24" width="100" height="20"/>
<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isItalic="true"/>
</textElement>
<text><![CDATA[ID]]></text>
</staticText>
<staticText>
<reportElement x="100" y="24" width="100" height="20"/>
<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isItalic="true"/>
</textElement>
<text><![CDATA[Customer name]]></text>
</staticText>
<staticText>
<reportElement x="200" y="24" width="100" height="20"/>
<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isItalic="true"/>
</textElement>
<text><![CDATA[Customer country]]></text>
</staticText>
<staticText>
<reportElement x="300" y="24" width="100" height="20"/>
<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isItalic="true"/>
</textElement>
<text><![CDATA[Customer city]]></text>
</staticText>
<staticText>
<reportElement positionType="Float" x="0" y="109" width="100" height="20"/>
<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isItalic="true"/>
</textElement>
<text><![CDATA[ID]]></text>
</staticText>
<staticText>
<reportElement positionType="Float" x="100" y="109" width="100" height="20"/>
<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isItalic="true"/>
</textElement>
<text><![CDATA[City]]></text>
</staticText>
<staticText>
<reportElement positionType="Float" x="0" y="89" width="200" height="20"/>
<box topPadding="1" leftPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isBold="true" isItalic="true"/>
</textElement>
<text><![CDATA[Receipts]]></text>
</staticText>
<componentElement>
<reportElement positionType="Float" x="0" y="201" width="400" height="18"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="InvoicesDataset">
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
<jr:listContents height="18" width="400">
<textField pattern="###0.00;-###0.00">
<reportElement positionType="Float" x="100" y="0" width="100" height="18"/>
<box leftPadding="10" rightPadding="10">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{INVOICESUM}]]></textFieldExpression>
</textField>
<textField>
<reportElement positionType="Float" x="0" y="0" width="100" height="18"/>
<box leftPadding="10" rightPadding="10">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{INVOICEID}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
<staticText>
<reportElement positionType="Float" x="0" y="161" width="200" height="20"/>
<box topPadding="1" leftPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isBold="true" isItalic="true"/>
</textElement>
<text><![CDATA[Invoices]]></text>
</staticText>
<staticText>
<reportElement positionType="Float" x="100" y="181" width="100" height="20"/>
<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isItalic="true"/>
</textElement>
<text><![CDATA[Sum]]></text>
</staticText>
<staticText>
<reportElement positionType="Float" x="0" y="181" width="100" height="20"/>
<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font isItalic="true"/>
</textElement>
<text><![CDATA[ID]]></text>
</staticText>
</band>
</title>
</jasperReport>
报告的设计是:
结果将是(通过 iReport 预览):
关于java - 在 iReport 中有许多独立的、未处理的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11604391/
谁能告诉我 JasperReports .jrxml 文件中属性 ireport.x 和 ireport.y 的用途?提前致谢。 最佳答案 参数ireport.x、ireport.y 和 irepor
我正在使用 iReport-3.7.6 我创建了一个 sample_Report1,其中一个参数为 (Project_name) 和 我创建了 Sample_Report2,其中一个参数为 (Empl
我在 jaspersoft 中有一个主要的报告。在主报告中,我使用了两个子报告。在其中一个子报告中,我有一个变量 Total Cash。我必须在下一个子报告中使用这个变量 Total Cash。是否可
我尝试了很长时间: 我正在使用 iReport 设计器创建报告。因为它以所有格式(PDF、Excel、RTF)显示图像,但是当我尝试在 JSP 中以 HTML 格式显示时,图像没有显示。我想做的就是解
我想在术语打印机中打印票据,但信息可以使用 3 英寸或 25 英寸长度的纸张。如果我将页面尺寸设置为 25",我会浪费大量纸张,因为打印了空白。 如何解决? 最佳答案 好吧,这比我想象的要容易。 主元
我在 iReport 中格式化日期有问题 我的电脑我将语言环境配置为法语,但是当 iReport 生成报告时,我发现日期格式为英语语言环境。 这是我的 jrxml 文件中的一些代码:
我知道如何将参数从主报表传递到子报表,因为在子报表对象中有一个特定的字段。但是,我想对表或列表对象作为使用者(而不是子报表)执行相同的操作。可能吗? 例如,假设我有一个“customerID”参数,可
我正在使用 iReport 2.0.5(因为我必须这样做),我在格式化百分比方面遇到了一些问题。当我使用未格式化的 double 时,这就是我得到的: 0 22,22 5,555 (this is t
我想为我的域类实例而不是全部实例创建报告,只是为GSP表中选定的用户(选择复选框)创建报告。在我的报告中,我还将有一些逻辑-很少的条件,一些计算等。我还必须从数据库中获取一些其他数据。我该怎么做呢?我
我正在使用 iReport 2.0.5(因为我必须这样做),我在格式化百分比方面遇到了一些问题。当我使用未格式化的 double 时,这就是我得到的: 0 22,22 5,555 (this is t
我的报表中有一个列表组件,它显示一组数据。它的高度是在运行时根据 Set(JRBeanCollectionDataSource) 的大小确定的。我想创建一个高度与列表相同的矩形。我怎样才能做到这一点?
有人知道在 IReport 上将横向和纵向方向组合在同一个报表中的一种模式吗?请记住我想要一个 PDF 文档作为结果。 谢谢 克莱伯·阿尔贝托。 最佳答案 我认为仅使用 iReport 和 Jaspe
我的报表中需要多个查询,因此添加了新的数据集。 问题是我无法在报表中使用新数据集的字段,错误是:字段不存在。 因此,如何在报表中有多个查询(以打印不同表的字段)而不为每个字段创建子报表? 谢谢。 最佳
如何在iReport中预览以获取包含子报表的报表,并且该子报表在子报表参数中发送? JRXML 中的子报表示例: /subreportExpression> java中的参数示例: InputStre
我的 Java 项目的一份报告可以包含多个子报告吗? 我有一个生成主报告的类,并且根据用户选择的报告,将在主报告中生成子报告。但我在 Java 类上执行此操作,在 iReport 上我只输入参数。因此
我使用iReport 5.1.0工具进行报表设计。 我当前的报告输出如下: ------------------------------------------------------------ |
我们正在使用 iReport 5.0.1,并已成功转换我们的许多 Crystal Reports 包。 我正在处理混合了整数和 double 据类型的数据,并且在详细信息部分的变量字段内执行计算。 然
我正在尝试在我的报告中使用外部对象。 我将带有外部对象的 jar 文件添加到 iReport 类路径(在设置中) 静态文本(带 I18n) msg($R{pdf.invoice.finalTitle}
我的报告中的累加器存在问题。在每页的页脚中,我需要打印记录的总和(小计器),但是当发生分页符时,因为历史字段非常大并且不适合此页面,所以总和会与下一页的值相加记录,将在下一页打印。这是错误的,应仅添加
我有一个子报表,它运行良好,我还有一个使用子报表的报表,并且在 IReport 中也运行良好;我总是使用“文件路径”中的子报表。 但是,我想将报告添加到 JAR(OSGI bundle )中,并将使用
我是一名优秀的程序员,十分优秀!