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
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:
Vous pouvez trouver beaucoup d'info dans le JasperReports Ultimate Guide.
iReports champs personnalisés pour les colonnes (somme, moyenne, etc)
cliquez avec le bouton droit de la souris sur Variables et cliquez sur Créer une Variable
Cliquez sur la nouvelle variable
A. Remarquez les propriétés à droite
Renommer la variable en conséquence
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
sélectionnez le type de calcul correct
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
définir L'Expression de la valeur initiale à 0
définir le type d'incrément à none
- Quitter Incrementer Nom De La Classe De L'Usine vide
Définir le Type de Réinitialisation (généralement de rapport)
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)
- double cliquez sur le nouveau champ de texte
- Effacer l'expression "zone de texte"
sélectionnez la nouvelle variable
Cliquez sur terminer
- mettre le nouveau texte dans une position souhaitable--6-->