web-dev-qa-db-fra.com

Comment additionner toutes les valeurs d'une colonne dans Jaspersoft iReport Designer?

J'ai ci-dessous un rapport similaire dans Jaspersoft iReport Designer, mais je n'arrive pas à comprendre comment additionner toutes les valeurs présentes dans la colonne verticale "Doctor Payment" pour obtenir un total de "1601"? La longueur de ces colonnes est variable (c'est-à-dire qu'aucune ligne ne varie en fonction de la taille de la base de données et de sa fréquence de mise à jour).

Y a-t-il une variable comme $V{COLUMN_COUNT} (donne en fait pas de lignes, ici 5), ce qui donne la somme de toutes les valeurs dans une colonne? Si non, comment faire somme?

Doctor ID   Doctor Payment
 A1             123
 B1             223
 C2             234
 D3             678
 D1             343
Total          1601
26
Sagar Nikam

Il est assez facile de résoudre votre tâche. Vous devez créer et utiliser une nouvelle variable pour additionner les valeurs de la colonne "Doctor Payment" .

Dans votre cas, la variable peut être déclarée comme ceci:

<variable name="total" class="Java.lang.Integer" calculation="Sum">
    <variableExpression><![CDATA[$F{payment}]]></variableExpression>
</variable>
  • le Type de calcul est Sum ;
  • le Type de réinitialisation est Rapport ;
  • Expression variable est $ F {paiement} , où $ F { paiement} est le nom d'un champ contient sum ( Doctor Payment).

L'exemple de travail.

Source de données CSV:

 doctor_id, paiement 
 A1,123 
 B1,223 
 C2,234 
 D3,678 
 D1,343 

Le modèle:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ...>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="doctor_id" class="Java.lang.String"/>
    <field name="payment" class="Java.lang.Integer"/>
    <variable name="total" class="Java.lang.Integer" calculation="Sum">
        <variableExpression><![CDATA[$F{payment}]]></variableExpression>
    </variable>
    <columnHeader>
        <band height="20" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="10" isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Doctor ID]]></text>
            </staticText>
            <staticText>
                <reportElement x="100" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="10" isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Doctor Payment]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement x="0" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{doctor_id}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{payment}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <summary>
        <band height="20">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement>
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Total]]></text>
            </staticText>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement>
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <textFieldExpression><![CDATA[$V{total}]]></textFieldExpression>
            </textField>
        </band>
    </summary>
</jasperReport>

Le résultat sera:

Generated report via iReport's preview


Vous pouvez trouver beaucoup d'informations dans le JasperReports Ultimate Guide .

63
Alex K

champs personnalisés iReports pour les colonnes (somme, moyenne, etc.)

  1. Cliquez avec le bouton droit sur les variables et cliquez sur Créer une variable

  2. Cliquez sur la nouvelle variable

    une. Remarquez les propriétés sur la droite

  3. Renommez la variable en conséquence

  4. Remplacez le nom de la classe de valeur par le type de données correct

    une. Vous pouvez rechercher en cliquant sur les 3 points

  5. Sélectionnez le bon type de calcul

  6. Changer l'expression

    une. Cliquez sur la petite icône

    b. Sélectionnez la colonne pour laquelle vous souhaitez effectuer le calcul

    c. Cliquez sur terminer

  7. Définir l'expression de la valeur initiale à 0

  8. Définissez le type d'incrément sur aucun

  9. Laissez le nom de la classe d'usine de l'incrémenteur vide
  10. Définissez le type de réinitialisation (généralement le rapport)

  11. Faites glisser un nouveau champ de texte vers la scène (généralement dans le dernier pied de page ou le pied de colonne)

  12. Double-cliquez sur le nouveau champ de texte
  13. Effacez l'expression "champ de texte"
  14. Sélectionnez la nouvelle variable

  15. Cliquez sur terminer

  16. Mettez le nouveau texte dans une position souhaitable 
12
Matt