ireport group 分组处理报表数据

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>

效果图:

在这里插入图片描述

数据库图示:

在这里插入图片描述

标红的是组别的关键字段哦。就这样了,希望对你有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值