![]() ![]() |
La classe Totale esiste come contenitore per le funzioni aggregate. La classe Totale contiene alcune funzioni per l'aggregazione. Tali funzioni sono estensioni BIRT a JavaScript, che riepilogano una serie di righe. Il motore di prospetti BIRT implementa una funzione nelle due fasi seguenti:
BIRT riscrive qualsiasi script che contiene un aggregato, creando uno script rivisto che esegue le due fasi. L'unico caso in cui è importante avere la consapevolezza di questo processo è durante il debug di un'espressione che contiene un aggregato. Considerare l'esempio di visualizzazione di un valore nel piè di pagina di un gruppo, in cui il valore è una percentuale del totale per tutti i conti. La seguente istruzione effettua questa azione:
Nell'esempio precedente, Total.OVERALL consente a BIRT di elaborare l'aggregato somma su tutte le righe, anche se l'espressione viene visualizzata in un totale del gruppo. Per elaborare l'espressione nell'esempio precedente, BIRT esegue una fase in cui calcola il saldo totale e una seconda fase per calcolare il valore di ogni conto.
Le regole generali per la classe Totale sono:
Tutti gli aggregati consentono due argomenti facoltativi per indicare il filtraggio e il raggruppamento:
Un argomento di filtro fornisce un'espressione Booleana che BIRT valuta su ogni riga. BIRT considera solo le righe che corrispondono al filtro durante l'elaborazione dell'aggregato. Ad esempio, un prospetto potrebbe fare la somma dei limiti di credito dei clienti attivi per determinare la massima esposizione di credito.
L'espressione viene eseguita nella fase di conversione dati. Essa può accedere alle colonne nella riga, ai parametri, alle funzioni definite dall'utente e ad altre risorse, come definito nella descrizione del contenuto precedente. Ad esempio:
Un argomento di filtro nullo, non definito o Total.NO_FILTER indica che non viene fornito alcun filtro. Se l'applicazione non fornisce alcun filtro, il filtro assume il valore predefinito di non definito. Se si fornisce un argomento del gruppo, è necessario fornire anche un valore nullo o Total.NO_FILTER per indicare assenza di filtro.
I prospetti devono visualizzare spesso i totali per il livello di raggruppamento corrente. Ad esempio, si supponga che un prospetto viene raggruppato per clienti e ordini e che i record di dettagli rappresentino gli elementi riga negli ordini. Ogni elemento riga ha un prezzo per unità e una quantità, come nel seguente aggregato:
Questo aggregato somma i valori sul gruppo corrente. Se inserito nel piè di pagina, visualizza la somma degli elementi riga per tale ordine. Se inserito nel piè di pagina del cliente, visualizza la somma di tutti gli elementi riga per tutti gli ordini per tale cliente. Se inserito nel piè di pagina del prospetto, visualizza la somma di tutti gli elementi riga per tutti i clienti.
A volte però, è necessario che l'applicazione abbia accesso a un totale da un livello di raggruppamento differente. Ad esempio, è possibile conoscere il valore totale di un ordine come percentuale di tutti gli ordini per il cliente. In questo caso, è necessario accedere al totale per un gruppo diverso da quello corrente. A tale scopo, utilizzare l'argomento di raggruppamento:
L'argomento di gruppo può essere uno dei seguenti:
I seguenti esempi illustrano questi tipi di argomenti di gruppo:
Total.sum( row["myCol"] null, null ); // Gruppo corrente Total.sum( row["myCol"], null, "Cliente" ); // Per nome Total.sum( row["myCol"], null, "row[`custID']" ); // Per chiave di gruppo Total.sum( row["myCol"], null, 1 ); // Per indice di gruppo Total.sum( row["myCol"], null, "Complessivo" ); // Totali Total.sum( row["myCol"], null, 0 ); // Totali
Quando si utilizza un argomento di raggruppamento, occorre fornire l'argomento del filtro. Se non è necessario un filtro, assegnare nullo come valore del filtro. L'indice del gruppo non viene inserito tra apici. Esso deve essere assegnato come numero. Ossia 1 indica il gruppo al livello 1, mentre "1" indica il gruppo denominato "1".
OVERALL
Questa funzione aggregata calcola il valore della mediana matematica. Se l'espressione si risolve in un numero, questa funzione restituisce la media di tali numeri. Se l'espressione si risolve in una data, la funzione restituisce la data media.
Total.ave( expr [, filter [, group ]] )
Questa funzione restituisce il valore di media dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.
La seguente istruzione restituisce l'età media degli studenti in una classe:
Per restituire la data di nascita media degli studenti in una classe, utilizzare la seguente istruzione:
Aggregato Total.median
Aggregato Total.mode
Aggregato Total.movingAve
Aggregato Total.stdDev
Aggregato Total.variance
Aggregato Total.weightedAve
Questa funzione calcola il numero di righe nel gruppo.
Total.count( [ filter [, group ]] )
Questo esempio calcola il numero di studenti e di studentesse in una classe. È necessario creare due elementi di dati. Impostare il primo su:
Impostare il secondo su:
Aggregato Total.countDistinct
Aggregato Total.sum
Questa funzione calcola il numero di valori distinti nel gruppo o nel dataset. L'argomento expr fornisce un'espressione utilizzata per raggruppare i valori. L'espressione si riferisce a una colonna della riga di dati. I valori nulli vengono calcolati come un valore distinto.
Total.countDistinct ( expr [, filter [, group ]] )
Il numero di valori distinti nel gruppo o nel dataset. Restituisce zero se non sono disponibili righe.
Si supponga di volere conoscere il numero di differenti nazioni rappresentate da un gruppo di studenti. È possibile definire un elemento di dati che utilizza la seguente espressione:
In questa istruzione, row.Country è una colonna che contiene il nome o il codice per la nazione di appartenenza dello studente. Si supponga che alcune righe contengano valori nulli, ossia che non si conosce la nazione di appartenenza. Utilizzare la seguente istruzione per escludere tali righe dal calcolo:
Aggregato Total.count
Questa funzione aggregata restituisce il primo valore presente in un insieme di dati. Questo è il primo valore recuperato dall'insieme di dati durante il recupero di righe tramite l'ordinamento definito per la tabella o per l'elenco.
Total.first( expr [, filter [, group ]] )
Questa funzione restituisce il primo valore presente nella sequenza di righe o un valore nullo se il dataset non contiene alcuna riga.
Si supponga che un prospetto elenchi le transazioni per una determinata azione durante un periodo di tempo. La seguente istruzione visualizza il primo acquisto dell'azione.
Aggregato Total.isBottomNPercent
Aggregato Total.max
Aggregato Total.min
Questa funzione restituisce un valore booleano che indica se il valore di un determinato campo numerico è uno degli n valori più bassi.
Total.isBottomN( expr, n, [, filter [, group ]] )
Questa funzione restituisce true o false. Questa funzione restituisce true se il valore nel campo numerico è il valore n più basso di tutti i valori in questa colonna.
Si supponga che una colonna di un prospetto abbia cinque righe, contenenti i valori 1, 2, 3, 4 e 5. Total.isBottomN(expr, 2) verifica se il campo rappresentato da expr contiene un 1 o un 2, i due numeri più bassi nella colonna.
Questa funzione restituisce un valore booleano che indica se il valore di un determinato campo numerico è presente nella percentuale n più bassa di tutti i valori della colonna.
Total.isBottomNPercent( expr, n, [, filter [, group ]] )
Questa funzione restituisce true o false. Questa funzione restituisce true se il valore nel campo è la percentuale n più bassa di tutti i valori in questa colonna.
Si supponga che una colonna di un prospetto abbia cinque righe, contenenti i valori 1, 2, 3, 4 e 5. Total.isBottomNPercent(expr, 60) verifica se il campo rappresentato da expr contiene un 1, un 2 o un 3, il 60% più basso dei numeri nella colonna.
Questa funzione restituisce un valore booleano che indica se il valore di un determinato campo numerico è uno degli n valori più alti.
Total.isTopN( expr, n, [, filter [, group ]] )
Questa funzione restituisce true o false. Questa funzione restituisce true se il valore nel campo numerico è il valore n più alto di tutti i valori in questa colonna.
Si supponga che una colonna di un prospetto abbia cinque righe, contenenti i valori 1, 2, 3, 4 e 5. Total.isTopN(expr, 2) verifica se il campo rappresentato da expr contiene un 4 o un 5, i due numeri più alti nella colonna.
Questa funzione restituisce un valore booleano che indica se il valore di un determinato campo numerico è presente nella percentuale n più alta di tutti i valori della colonna.
Total.isTopNPercent( expr, n, [, filter [, group ]] )
Questa funzione restituisce true o false. Questa funzione restituisce true se il valore nel campo è la percentuale n più alta di tutti i valori in questa colonna.
Si supponga che una colonna di un prospetto abbia cinque righe, contenenti i valori 1, 2, 3, 4 e 5. Total.isTopNPercent(expr, 60) verifica se il campo rappresentato da expr contiene un 3, un 4 o un 5, il 60% più alto dei numeri nella colonna.
Questa funzione restituisce l'ultimo valore presente in un insieme di dati. Questo è l'ultimo valore recuperato dall'insieme di dati durante il recupero di righe tramite l'ordinamento definito per la tabella o per l'elenco.
Total.last( expr [, filter [, group ]] )
Questa funzione restituisce l'ultimo valore presente nella sequenza di righe o un valore nullo se il dataset non contiene alcuna riga.
Si supponga che un prospetto elenchi le transazioni per un determinato titolo azionario durante un periodo di tempo. La seguente istruzione visualizza la vendita più recente del titolo azionario:
Aggregato Total.first
Aggregato Total.max
Aggregato Total.min
Questa funzione calcola il valore massimo dell'espressione specificata. L'espressione viene calcolata per ogni riga e viene conservato il valore massimo. Questa funzione può disporre di numeri, date o stringhe.
Total.max( expr [, filter [, group ]] )
Questa funzione restituisce il valore massimo dell'espressione specificata. Essa restituisce un valore nullo se non sono disponibili righe.
La seguente istruzione individua lo studente più grande di età in una classe:
Aggregato Total.first
Aggregato Total.isBottomNPercent
Aggregato Total.min
Questa funzione aggregata calcola il valore della mediana matematica. La metà dei valori sono superiori alla mediana e l'altra metà sono inferiori.
Total.median( expr [, filter [, group ]] )
Questa funzione restituisce un valore di mediana dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.
La seguente istruzione restituisce l'età media degli studenti in una classe:
Per restituire la data di nascita media degli studenti in una classe, utilizzare la seguente istruzione:
Aggregato Total.ave
Aggregato Total.mode
Aggregato Total.movingAve
Aggregato Total.stdDev
Aggregato Total.variance
Aggregato Total.weightedAve
Questa funzione aggregata calcola il valore minimo dell'espressione specificata. L'espressione viene calcolata per ogni riga e viene conservato il valore minimo. Questa funzione può disporre di qualsiasi tipo semplice: numeri, date o stringhe.
Total.min( expr [, filter [, group ]] )
Questa funzione restituisce il valore minimo dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.
La seguente istruzione restituisce l'età dello studente più giovane in una classe:
Aggregato Total.first
Aggregato Total.isBottomNPercent
Aggregato Total.max
Questa funzione aggregata calcola il valore modale matematico. Il valore modale si verifica più frequentemente nei dati. Ad esempio, nella sequenza {1, 2, 3, 2, 4, 7}, 2 è il valore modale, poiché viene visualizzato due volte, mentre tutti gli altri numeri vengono visualizzati una sola volta. Se un insieme di dati dispone di più valori modali, ad esempio nella sequenza {1,2,3,2,3}, l'aggregato del valore modale restituisce un valore nullo.
Total.mode( expr [, filter [, group ]] )
Questa funzione restituisce un valore modale dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe o se i dati dispongono di più valori modali.
La seguente istruzione restituisce l'età più frequente degli studenti in una classe:
Aggregato Total.ave
Aggregato Total.median
Aggregato Total.movingAve
Aggregato Total.stdDev
Aggregato Total.variance
Aggregato Total.weightedAve
Questa funzione aggregata calcola una media dinamica. L'argomento expr fornisce il valore alla media e l'argomento della finestra fornisce il numero di righe da considerare. La media delle righe viene calcolata nell'ordine determinato dal contesto, generalmente l'ordine specificato da un ordinamento per un elemento elenco o tabella.
Total.movingAve( expr, window [, filter [, group ]] )
Questa funzione restituisce un valore medio dinamico dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.
Si supponga che un prospetto elenchi il prezzo giornaliero di un'azione. Per visualizzare la media dinamica di tale titolo azionario negli ultimi cinque giorni, utilizzare la seguente istruzione:
Aggregato Total.ave
Aggregato Total.median
Aggregato Total.mode
Aggregato Total.stdDev
Aggregato Total.variance
Aggregato Total.weightedAve
Questa funzione esamina una serie di valori e restituisce il valore specificato come percentuale di tutti i valori nella serie. Ad esempio, è possibile conoscere quale punteggio rappresenta il 90% di tutti i punteggi in una verifica.
Questa funzione restituisce il valore che si trova alla percentuale specificata nella serie di valori analizzati.
La seguente istruzione restituisce il cinquantesimo valore di punteggio percentuale:
Se la serie di punteggi di verifica nella colonna specificata è 10, 20, 30, 40 e 50, tale istruzione restituisce 30.
Questa funzione calcola la classificazione di percentuale di un valore in un campo specificato.
percentRank( expr, filter [, group ]] )
Questa funzione restituisce la classificazione di percentuale del valore nel campo specificato. Il valore di rendimento è compreso tra zero e uno.
La seguente istruzione restituisce la classificazione di percentuale di un punteggio compreso tra tutti i punteggi in una colonna:
Se i punteggi nell'intervallo di valutazione sono 10, 10, 20 e 50 e il punteggio nella cella contenente questa istruzione è 30, il valore di rendimento è 0,5 perché la metà dei valori è superiore a 20 e l'altra metà è inferiore a 20.
Questa funzione calcola t.
percentSum( expr [, filter [, group ]])
Questa funzione restituisce la percentuale del contributo di questo valore alla somma di tutti i valori nell'intervallo.
La seguente istruzione restituisce la percentuale di contributo di questo importo di ordine alla somma degli importi di ordini:
Questa funzione calcola il valore in una serie definita di valori per cui 0%, 25%, 50%, 75% o 100% dei valori nella serie è maggiore.
quartile( expr, quartile, [, filter [, group ]] )
Questa funzione restituisce il valore nella serie specificata che rientra nel quartile indicato.
La seguente istruzione restituisce l'importo dell'ordine per cui il 75% è inferiore e il 25% è superiore:
Questa funzione calcola dove collocare un valore in una serie di valori. Il valore di classificazione varia da 1 al numero di valori nella serie. Se due valori sono identici, hanno la stessa classificazione.
rank( expr [, filter [, group ]] )
Questa funzione restituisce un numero intero che riflette la classificazione del valore e che prevede un intervallo di 1 fino al numero di elementi nella serie di valori
La seguente istruzione restituisce la classificazione del campo OrderAmt tra tutti gli importi di ordini nella colonna OrderAmt.
Questa funzione calcola un totale di righe dinamico.
runningCount( filter [, group ]] )
Questa funzione restituisce il totale di righe dinamico.
La seguente istruzione restituisce il totale in esecuzione per un prospetto:
Aggregato Total.count
Aggregato Total.percentRank
Questa funzione aggregata calcola lo scarto medio standard matematico di una sequenza di numeri. Lo scarto medio standard è una misura della diffusione di una serie di valori.
Total.stdDev( expr [, filter [, group ]] )
Questa funzione restituisce uno scarto medio standard dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.
Aggregato Total.ave
Aggregato Total.median
Aggregato Total.mode
Aggregato Total.movingAve
Aggregato Total.variance
Aggregato Total.weightedAve
Questa funzione aggregata calcola la somma derivante dall'aggiunta di un valore per ogni riga nel gruppo. Il valore per ogni riga viene calcolato utilizzando l'espressione fornita nell'argomento expr. La somma si ottiene aggiungendo tutti questi valori contemporaneamente.
Total.sum( expr [, filter [, group ]] )
La somma dell'espressione specificata. Restituisce zero se non sono disponibili righe.
La seguente istruzione somma gli importi di ordini per un cliente:
Aggregato Total.count
Aggregato Total.percentRank
Questa funzione aggregata calcola la varianza statistica di una sequenza di numeri. La varianza è una misura della diffusione di una serie di valori.
Total.variance( expr [, filter [, group ]] )
Questa funzione restituisce lo scarto dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.
Aggregato Total.ave
Aggregato Total.median
Aggregato Total.mode
Aggregato Total.movingAve
Aggregato Total.stdDev
Aggregato Total.weightedAve
Questa funzione aggregata calcola il valore della mediana matematica ponderata. Se gli argomenti expr o weight vengono risolti in un valore nullo, la riga viene esclusa dalla media.
Total.weightedAve( expr, weight [, filter [, group ]] )
Questa funzione restituisce il valore di media ponderato dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.
Si supponga che un'applicazione finanziaria traccia del lotto di un determinato titolo azionario acquistato in momenti differenti. Ogni lotto ha un differente prezzo di acquisto e un numero di azioni acquistate a tale prezzo. La seguente istruzione calcola il prezzo di acquisto medio ponderato:
Aggregato Total.ave
Aggregato Total.median
Aggregato Total.mode
Aggregato Total.movingAve
Aggregato Total.stdDev
Aggregato Total.variance
![]() ![]() |