我在主報告中創建了一個子數據集,並使用它創建列表。該列表顯示了我的數據集中的所有行,但有沒有辦法將總行數計入列表組件。子數據集 - 列表中的總行數
隨着$V{REPORT_COUNT}
變量,我可以得到總計數,但其重複多次(如中行的子集數)
我在主報告中創建了一個子數據集,並使用它創建列表。該列表顯示了我的數據集中的所有行,但有沒有辦法將總行數計入列表組件。子數據集 - 列表中的總行數
隨着$V{REPORT_COUNT}
變量,我可以得到總計數,但其重複多次(如中行的子集數)
創建第二個列表其設置爲使用相同的數據集,並把只有$V{REPORT_COUNT}
在裏面。設置位置類型浮動
第二個選項是使用表到位名單的,因爲它有條紋,讓你的數據集的頁眉或頁腳
正如指出的用戶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>
然後有點像邁克·諾蘭已經在他的答案,創建指向同一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中項目總數的項目。
您提到的列表方法並不奏效。我將文本字段的位置類型設置爲浮動。是對的嗎? – Kathir
不,你應該將列表框的位置類型設置爲float(所以它會是你第一個上一個框後的下一個興奮點)。 –