ireport 分组
头疼,看了好多例子都没有说在xml实现分组。没办法只能自己记录一下啦。
以下是xml文件,后面有附效果图。
<?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="PrescriptionDetailHerb" language="groovy" columnCount="2" printOrder="Horizontal" pageWidth="380" pageHeight="280" columnWidth="180" leftMargin="10" rightMargin="10" topMargin="10" bottomMargin="10" isFloatColumnFooter="true" uuid="3222bedd-9c03-4526-845d-48e29745c616">
<property name="ireport.zoom" value="2.5937424601000028"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="ID" class="java.lang.String">
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[-- 处方明细(中草药)
select T_ODW_ORDERGROUP.ID, -- 处方ID
T_ODW_ORDER.CONJUNCTION_SEQ_NO AS CONSEQ_NO,-- 组别
T_ODW_ORDER.DURATION AS DURATION, -- 剂数
T_ODW_ORDER.ITEM_NAME AS PRODUCT_NAME, -- 商品名
T_ODW_ORDER.DOSAGE AS ORDER_DOSAGE, -- 医嘱打印剂量
T_ODW_ORDER.DOSAGE_UNIT AS ORDER_DOSAGE_UNIT, -- 医嘱打印剂量单位
T_ODW_ORDER.AMOUNT -- 总金额
from T_ODW_ORDERGROUP,
T_ODW_ORDER
LEFT JOIN t_sm_customparaitem USAGES ON USAGES.id = T_ODW_ORDER.USAGES
AND USAGES.ORG_ID = T_ODW_ORDER.ORG_ID
AND USAGES.HOSPITAL_ID = T_ODW_ORDER.HOSPITAL_ID
where T_ODW_ORDERGROUP.ID = T_ODW_ORDER.ORDER_GROUP_ID
and T_ODW_ORDER.ITEM_TYPE = '030301'
and T_ODW_ORDERGROUP.ID = $P{ID} -- 参数,处方ID]]>
</queryString>
<field name="ID" class="java.lang.String"/>
<field name="CONSEQ_NO" class="java.lang.String"/>
<field name="DURATION" class="java.lang.String"/>
<field name="PRODUCT_NAME" class="java.lang.String"/>
<field name="ORDER_DOSAGE" class="java.lang.String"/>
<field name="ORDER_DOSAGE_UNIT" class="java.lang.String"/>
<field name="AMOUNT" class="java.math.BigDecimal"/>
<group name="SeqNo">
<groupExpression><![CDATA[$F{DURATION}]]></groupExpression>
<groupHeader>
<band height="50"/>
</groupHeader>
<groupFooter>
<band height="50">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="e49d2c55-b73a-49a9-a47d-3f6b68e22303" x="250" y="30" width="100" height="20"/>
<textElement verticalAlignment="Middle">
<font fontName="宋体" size="14" isBold="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{DURATION} + "剂,"]]></textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<detail>
<band height="20">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="5c10df79-209c-4914-b85a-f0e4b57eafb1" x="0" y="0" width="109" height="20"/>
<box topPadding="0"/>
<textElement verticalAlignment="Middle">
<font fontName="宋体" size="14" isBold="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{PRODUCT_NAME}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="77611ce2-3a25-4f95-8d00-e2f6f0043434" x="109" y="0" width="36" height="20"/>
<textElement verticalAlignment="Middle">
<font fontName="宋体" size="12" isBold="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{ORDER_DOSAGE} + $F{ORDER_DOSAGE_UNIT}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
效果图:
数据库图示:
标红的是组别的关键字段哦。就这样了,希望对你有帮助。