Question

J'ai un rapport dans BIRT et je souhaite ajouter un résumé à la fin.

Le rapport contient 3 tables qui ont leur propre jeu de données. Je veux montrer un quatrième tableau avec les informations résumées un total général. J'ai du mal à calculer le total général.

ex:

DataSet #1
col1 | col 2 | Total
   x |     x |     x
   x |     x |     x
                  xx


DataSet #2
col1 | col 2 | Total
   x |     x |     x
   x |     x |     x
                  xx

DataSet #3
col1 | col 2 | Total
   x |     x |     x
   x |     x |     x
                  xx


Summary
Total DataSet #1 |  xx
Total DataSet #2 |  xx
Total DataSet #3 |  xx
Grand Total      | xxx
Était-ce utile?

La solution

Vous créez déjà les sous-totaux nécessaires dans chacun des trois premiers tableaux (via un groupe, je suppose). Dans l'événement de création de script pour la cellule de table avec votre total général, définissez une variable globale persistante pour suivre chaque sous-total. Vous pouvez ensuite accéder à chaque valeur de la quatrième et dernière table.

Pour définir la variable:

var totalValue = this.getDataRowData().getColumnValue("totalColumnName");
reportContext.setPersistentGlbalVariable("DataSet1Total", totalValue.toString());

REMARQUE: vous devrez envoyer le total général à un "String". tapez pour assurer la sérialisation. Vous pouvez le reconvertir en nombre lorsque vous rendez le tableau récapitulatif final.

Pour utiliser la variable, ajoutez un contrôle Text à votre rapport (dans une cellule du tableau récapitulatif). Dans l'événement de script onCreate pour le contrôle de texte, entrez les informations suivantes:

this.text = reportContext.getPersistentGlobalVariable("DataSet1Total");

Vous feriez cela pour chaque champ récapitulatif que vous avez retenu précédemment. Ensuite, pour le total général, vous pouvez le faire:

this.text = parseInt(reportContext.getPersistentGlobalVariable("DataSet1Total")) + parseInt(reportContext.getPersistentGlobalVariable("DataSet2Total")) + parseInt(reportContext.getPersistentGlobalVariable("DataSet3Total"));

Une variable globale persistante est simplement une valeur sérialisable accessible à travers les limites des composants d'un rapport. Il peut s’avérer très utile pour des besoins similaires aux vôtres.

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top