[英]Jasper Report print group values in different pages
使用iReport 4.1.3時,我遇到了這個基本問題。 我有兩個表“訂單”和“ order_details”。 我根據order_details中的每個訂單映射購物車中的各種產品。 例如:在訂單表中,我有:
order_id
123
456
在order_details表中,我將有:
order_id product_id
123 abc1
123 abc2
第456章
456 efg2
456 efg3
我在ireport中創建了以下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="merchant_invoice" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="order_ids" class="java.lang.String">
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[select
o.order_id,od.product_id
from cscart_orders o
inner join cscart_order_details od on od.order_id=o.order_id
where o.order_id in ($P{order_ids})]]>
</queryString>
<field name="order_id" class="java.math.BigInteger"/>
<field name="product_id" class="java.math.BigInteger"/>
<group name="order_id_group" isStartNewPage="true" isReprintHeaderOnEachPage="true">
<groupExpression><![CDATA[$F{order_id}]]></groupExpression>
<groupHeader>
<band height="25">
<textField>
<reportElement x="6" y="3" width="380" height="20"/>
<textElement/>
<textFieldExpression><![CDATA["header for order_id "+$F{order_id}]]></textFieldExpression>
</textField>
</band>
</groupHeader>
<groupFooter>
<band height="25">
<textField>
<reportElement x="8" y="3" width="291" height="20"/>
<textElement/>
<textFieldExpression><![CDATA["Footer for order id : "+$F{order_id}]]></textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="30" splitType="Stretch">
<textField>
<reportElement x="8" y="4" width="270" height="20"/>
<textElement/>
<textFieldExpression><![CDATA["Products with id :"+$F{product_id}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
但是,當我使用參數'123,456'對其進行預覽時,我只會得到一個頁面,其中僅包含第一訂單(即訂單123)的詳細信息。我沒有弄錯我在哪里做錯了。 請幫助。
如果您選擇多個訂單ID,則查詢應如下所示
select
o.order_id,od.product_id
from cscart_orders o
inner join cscart_order_details od on od.order_id=o.order_id
where $X{IN,o.order_id,order_ids}
參數order_ids的類應為“ java.util.Collection”,並且還可以提供默認值表達式
<parameter name="order_ids" class="java.util.Collection">
<defaultValueExpression><![CDATA[new ArrayList(Arrays.asList(new String[] {"123","456"}))]]></defaultValueExpression>
</parameter>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.