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

j'ai ci-dessous rapport similaire dans Jaspersoft iReport Designer, mais pas en mesure de comprendre comment faire la somme de toutes les valeurs présentes dans la colonne verticale "paiement de médecin" pour obtenir un total de "1601"? La longueur de ces colonnes est variable (c.-à-d. que le nombre de lignes varie selon la taille de la base de données et sa fréquence de mise à jour ).

variable $V{COLUMN_COUNT} (donne en fait le nombre de lignes, ici 5), ce qui donne la somme de toutes les valeurs dans une colonne? Si non, comment faire somme<!--6?

Doctor ID   Doctor Payment
 A1             123
 B1             223
 C2             234
 D3             678
 D1             343
Total          1601
24
demandé sur informatik01 2012-11-25 15:16:18

2 réponses

Il est assez facile à résoudre votre tâche. Vous devez créer et utiliser une nouvelle variable pour sommer les valeurs de "Paiement Des Médecins" colonne.

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>
  • Type de calculSomme;
  • Réinitialiser typeRapport;
  • expression Variable$F{paiement}, où $F{paiement} est le nom d'un champ contient la somme ( Paiement Des Médecins).

L'exemple.

CSV source de données:

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

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'info dans le JasperReports Ultimate Guide.

57
répondu Alex K 2016-04-15 19:19:43

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

  1. cliquez avec le bouton droit de la souris sur Variables et cliquez sur Créer une Variable

  2. Cliquez sur la nouvelle variable

    A. Remarquez les propriétés à droite

  3. Renommer la variable en conséquence

  4. Modifier la Valeur d'un Nom de Classe pour le Type de Données correct

    A. Vous pouvez rechercher en cliquant sur le 3 dots

  5. sélectionnez le type de calcul correct

  6. changer l'Expression

    un. Cliquez sur la petite icône

    b. Sélectionnez la colonne que vous voulez faire le calcul pour

    C. Cliquez sur Terminer

  7. définir L'Expression de la valeur initiale à 0

  8. définir le type d'incrément à none

  9. Quitter Incrementer Nom De La Classe De L'Usine vide
  10. Définir le Type de Réinitialisation (généralement de rapport)

  11. faites glisser un nouveau champ de texte à la scène (habituellement dans le pied de page de la dernière Page, ou le pied de page de la colonne)

  12. double cliquez sur le nouveau champ de texte
  13. Effacer l'expression "zone de texte"
  14. sélectionnez la nouvelle variable

  15. Cliquez sur terminer

  16. mettre le nouveau texte dans une position souhaitable--6-->
10
répondu Matt 2016-05-12 18:55:33