Voeg toe aan uw sql SOITEM."SOID"
(we controleren of dit gedupliceerd is), je krijgt een veld
<field name="SOID" class="java.lang.Integer"/>
Maak een groep op de SOID
<group name="SOID">
<groupExpression><![CDATA[$F{SOID}]]></groupExpression>
</group>
Maak vervolgens een variabele die reset is waarbij de groep het optreden van SOID
. telt
<variable name="SOID_Count" class="java.lang.Integer" resetType="Group" resetGroup="SOID" calculation="Count">
<variableExpression><![CDATA[$F{SOID}]]></variableExpression>
</variable>
De volgorde in de jrxml van deze code is
<field name="SOID" class="java.lang.Integer"/>
<variable name="SOID_Count" class="java.lang.Integer" resetType="Group" resetGroup="SOID" calculation="Count">
<variableExpression><![CDATA[$F{SOID}]]></variableExpression>
</variable>
<group name="SOID">
<groupExpression><![CDATA[$F{SOID}]]></groupExpression>
</group>
Deze variabele kan nu worden gebruikt om te evalueren of je SOID hebt gedupliceerd, het wordt >1 indien gedupliceerd SOID
Voorbeeld van textField
die 0 weergeven indien gedupliceerd SOID
<textField pattern="###0">
<reportElement x="143" y="0" width="105" height="20" uuid="a0e2ae10-906e-4d0f-aebd-30fc0c694aca">
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$V{SOID_Count}<=1?$F{SOITEM_UNITPRICE}:0]]></textFieldExpression>
</textField>
Op de dag dat u uw rapport wilt verbeteren, hoeft u alleen maar een groupHeader
toe te voegen band in je groep en zet dan de tekstvelden in deze band