我在主报告中创建了一个子数据集,并使用它创建一个列表。该列表显示了我的数据集中的所有行,但是有一种方法可以在列表组件中放置总行数。
使用$V{REPORT_COUNT}
变量,我可以获得总计数但重复多次(作为子数据集中的行数)
答案 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中项目总数的项目