子数据集 - 列表中的总行数

时间:2013-07-05 18:37:03

标签: jasper-reports

我在主报告中创建了一个子数据集,并使用它创建一个列表。该列表显示了我的数据集中的所有行,但是有一种方法可以在列表组件中放置总行数。

使用$V{REPORT_COUNT}变量,我可以获得总计数但重复多次(作为子数据集中的行数)

2 个答案:

答案 0 :(得分:0)

创建第二个列表,将其设置为使用相同的数据集,并在其中仅放置$V{REPORT_COUNT}。将排名类型设置为浮动

第二个选项是使用代替列表,因为它有条带以允许数据集的页眉或页脚

答案 1 :(得分:0)

正如用户jmurray的回答中所述:http://community.jaspersoft.com/questions/514827/row-count

subDataSet中,创建一个变量:

<variable name="ROW_COUNTER" class="java.lang.Integer" incrementType="Report" calculation="Count">
    <variableExpression><![CDATA[new java.lang.Integer(1)]]></variableExpression>
    <initialValueExpression><![CDATA[new java.lang.Integer(0)]]></initialValueExpression>
</variable>

然后有点像Mike Noland在他的回答中所做的那样,创建一个列表,指向与subDataSet的原始列表相同的textField

<textField>
    <reportElement isPrintRepeatedValues="false" x="0" y="0" width="100" height="11"/>
    <textFieldExpression><![CDATA[new java.lang.Integer($V{ROW_COUNTER}.intValue()+1)]]></textFieldExpression>
</textField>

这会创建一个基于零的计数器,用于保存项目的总数。然后通过告诉报告不打印重复,最终得到一个表示subDataSet中项目总数的项目