JasperReports报表组15

本文介绍了如何使用JasperReports中的组功能来组织报告数据。详细解释了组的构成元素及属性,并通过实例展示了如何创建一个基于国家的报告组。

组在JasperReports的协助组织对报告的数据以逻辑方式。报告组代表连续记录的数据源中有一些共同点,比如某个报表字段的值的序列。报告组由<group>元素定义。一个报表可以有任意数量的组。一旦声明,群体可以在整个报告中提到的。

报告组有三个要素:

  • Group expression: 这表示必须改变,以启动一个新的数据组中的数据。

  • Group header section: 帮助位置标签在分组数据的开始。

  • Group footer section: : 帮助位置标签在分组数据的末尾。

在截至于若该组表达变化,一组发生断裂和相应的<groupFooter>和<groupHeader>部分的值插入到生成的文档中报告充填时数据源的迭代。

 报表组的机制不执行由数据源所提供的资料的任何排序。数据分组按预期工作,只有当数据源中的记录按照报告中使用的组表达式已经下令。

属性组

<group>元素包含属性,使我们能够控制分组的数据是如何布局。属性概括于下表:

属性描述
name这是强制性的。它通过名称引用该组中的报表表达式。它遵循相同的命名约定我们,我们提到的报告参数,字段和报表变量。它可以在其他JRXML属性被用于当想引用一个特定的报告组。
isStartNewColumn当设置为true时,每个数据组将开始一个新的列。默认值是false
isStartNewPage当设置为true时,每个数据组将开始一个新的页面上。默认值是false
isResetPageNumber当设置为true,该报告页码将每一个新组开始时被重置。默认值是false
isReprintHeaderOnEachPage当设置为true时,组头会被重印每一页上。默认值是false
minHeightToStartNewPage定义在列的底部,以便将组头当前列所需要的垂直空间最小量。被指定在报告单位的数量。
footerPosition呈现在页面上的组页脚的位置,以及其有关的报告的部分它后面的行为。它的值可以是: NormalStackAtBottomForceAtBottomCollateAtBottom.默认值是 Normal
keepTogether当设置为true,将阻止该集团从分割它第一次突破的尝试

例子

让我们添加一个组(CountryGroup)现有的报告模板(章报表设计)。每个国家的次数进行计数,计数显示为组页脚。在组头中每个记录的计数前缀。修订后的报告模板(jasper_report_template.jrxml)如下。将其保存到 C:\tools\jasperreports-5.0.1\test 目录:

<?xml version="1.0"?>
<!DOCTYPE jasperReport PUBLIC
"//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<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="jasper_report_template" pageWidth="595"
pageHeight="842" columnWidth="515"
leftMargin="40" rightMargin="40" topMargin="50" bottomMargin="50">
<parameter name="ReportTitle" class="java.lang.String"/>
<parameter name="Author" class="java.lang.String"/>

   <queryString>
    <![CDATA[]]>
   </queryString>

   <field name="country" class="java.lang.String">
      <fieldDescription><![CDATA[country]]></fieldDescription>
   </field>

   <field name="name" class="java.lang.String">
      <fieldDescription><![CDATA[name]]></fieldDescription>
   </field>
   <sortField name="country" order="Descending"/>
   <sortField name="name"/>
   <variable name="CountryNumber" class="java.lang.Integer"
      incrementType="Group" incrementGroup="CountryGroup"
      calculation="Count">
      <variableExpression><![CDATA[Boolean.TRUE]]></variableExpression>
   </variable>
   <group name="CountryGroup" minHeightToStartNewPage="60">
      <groupExpression><![CDATA[$F{country}]]></groupExpression>
      <groupHeader>
         <band height="20">
            <textField evaluationTime="Group" evaluationGroup="CountryGroup"
               bookmarkLevel="1">
               <reportElement mode="Opaque" x="0" y="5" width="515"
                  height="15" backcolor="#C0C0C0"/>
               <box leftPadding="10">
                  <bottomPen lineWidth="1.0"/>
               </box>
               

转载于:https://www.cnblogs.com/mengyuxin/p/4663837.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值