Domanda

Ho un rapporto in BIRT e voglio aggiungere un riepilogo alla fine.

Il report è composto da 3 tabelle con un proprio set di dati. Voglio mostrare una quarta tabella con le informazioni di riepilogo e un totale complessivo. Ho problemi a calcolare il totale generale.

es:

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
È stato utile?

Soluzione

Stai già creando i totali parziali necessari in ciascuna delle prime tre tabelle (tramite un gruppo immagino). Nell'evento di creazione di script per la cella della tabella con il totale generale, impostare una variabile globale persistente per tenere traccia di ogni totale parziale. È quindi possibile accedere a ciascun valore all'interno della quarta e ultima tabella.

Per impostare la variabile:

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

NOTA: dovrai inviare il totale generale a una stringa " String " digitare per garantire la serializzazione. Puoi riconvertirlo in un numero quando esegui il rendering della tabella di riepilogo finale.

Per utilizzare la variabile, aggiungere un controllo Testo al report (in una cella della tabella di riepilogo). Nell'evento di scripting onCreate per il controllo del testo, immettere quanto segue:

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

Lo faresti per ogni campo di riepilogo conservato in precedenza. Quindi, per il totale generale, puoi farlo:

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

Una variabile globale persistente è semplicemente un valore serializzabile a cui è possibile accedere oltre i limiti dei componenti all'interno di un report. Può tornare molto utile per esigenze come la tua.

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top