sql >> Database >  >> RDS >> Mysql

Stel een herhalende waarde in op 0 terwijl u de eerste waarde alleen laat

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




  1. Hoe een innerlijke query te schrijven die het laatste bericht voor een bepaalde gebruiker retourneert?

  2. Leer 2 - 2 cijfers achter de komma op een vlotter?

  3. Hoe een gebruikersnaam en wachtwoord in te stellen met de broncodegenerator van Slick?

  4. JDBC-verbinding mislukt, fout:TCP/IP-verbinding met host mislukt