開發工具:iReport 4.0.1
在做EBS中的報表開發,客戶捨棄BI Publisher,而使用Jasper Report,使用過程中進行小小總結。
1,Report Properties中的“Ignore pagination”可以控制不分頁。
2,Pallet中的Break組件,可以控制表中多少行數據分頁。
Type: Page break, Column break
Print When Expression: 用來控制何時打印Break組件,就是執行分頁操作,可以填寫:$F{PAGINATION_FLAG}.equals( "Y")。
3,使用Report Group的"Start on a new page"
Report Group根據Group Expression中定義的字段來確定那些行可以同組,值相同的組相同,如果本行與上一行不同,就分組,如果設置了"Start on a new page",同時分頁。
下面的例子中,james一組,jack一組,jim和joe一組,jone一組。
0 | james | G0 |
1 | jack | G1 |
2 | jim | G2 |
3 | joe | G2 |
4 | jone | G1 |
如果要求每頁10行,組內不足10行打印空白行,可以在數據庫表中插入空白行來實現。
4,關於合計
定義了組後,可以進行分組計算,也可以做Report內的合計,組內合計的時候,variableExpression是必要的,組內計算依賴定義好的分組。
<variable name="quantitySumInGroup" class="java.lang.Integer" resetType="Group" resetGroup="positionNoGroup" calculation="Sum">
<variableExpression><![CDATA[$F{QUANTITY}]]></variableExpression>
<initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>
調整resetType爲Report來合計所有行。
合計參考:http://asmitasapkota.blogspot.com/2009/06/calculating-sum-in-each-group-in.html