組在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 | 呈現在頁面上的組頁腳的位置,以及其有關的報告的部分它後面的行為。它的值可以是: Normal, StackAtBottom, ForceAtBottom, CollateAtBottom.預設值是 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