Argomento precedenteArgomento successivo


Classe Totale

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:

(balance / Total.sum( balance, Total.OVERALL ) ) * 100.0 

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:

Informazioni sul raggruppamento e sul filtraggio

Tutti gli aggregati consentono due argomenti facoltativi per indicare il filtraggio e il raggruppamento:

Total.<funzione aggregata> ( ..., filtro, gruppo ) 

Informazioni sull'argomento del filtro

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:

Total.sum( row["CreditLimit"], row["Active"] == 'Y' ); 

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.

Informazioni sull'argomento del gruppo

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:

Total.sum( row["prezzo"] * row["quantità"] ) 

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:

Total.sum( row.CreditLimit, null, "Cliente" ); 

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".

Proprietà statiche

OVERALL

funzioni

Total.ave

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.

Sintassi

Total.ave( expr [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce il valore di media dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.

Esempio

La seguente istruzione restituisce l'età media degli studenti in una classe:

Total.ave( row.Age ) 

Per restituire la data di nascita media degli studenti in una classe, utilizzare la seguente istruzione:

Total.ave( row.BirthDate ) 

Vedere anche

Aggregato Total.median

Aggregato Total.mode

Aggregato Total.movingAve

Aggregato Total.stdDev

Aggregato Total.variance

Aggregato Total.weightedAve

Total.count

Questa funzione calcola il numero di righe nel gruppo.

Sintassi

Total.count( [ filter [, group ]] )

Argomenti

Esempio

Questo esempio calcola il numero di studenti e di studentesse in una classe. È necessario creare due elementi di dati. Impostare il primo su:

Total.sum( row.sex == 'M' ); 

Impostare il secondo su:

Total.sum( row.sex == 'F' ); 

Vedere anche

Aggregato Total.countDistinct

Aggregato Total.sum

Total.countDistinct

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.

Sintassi

Total.countDistinct ( expr [, filter [, group ]] )

Argomenti

Restituisce

Il numero di valori distinti nel gruppo o nel dataset. Restituisce zero se non sono disponibili righe.

Esempio

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:

Total.countDistinct( row.Country ) 

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:

Total.countDistinct( row.Country, row.Country != null ) 

Vedere anche

Aggregato Total.count

Total.first

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.

Sintassi

Total.first( expr [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce il primo valore presente nella sequenza di righe o un valore nullo se il dataset non contiene alcuna riga.

Esempio

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.

Total.first( row.TransDate, row.Action == 'Buy' ); 

Vedere anche

Aggregato Total.isBottomNPercent

Aggregato Total.max

Aggregato Total.min

Total.isBottomN

Questa funzione restituisce un valore booleano che indica se il valore di un determinato campo numerico è uno degli n valori più bassi.

Sintassi

Total.isBottomN( expr, n, [, filter [, group ]] )

Argomenti

Restituisce

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.

Esempio

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.

Vedere anche

Total.isBottomNPercent

Total.isTopN

Total.isTopNPercent

Total.isBottomNPercent

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.

Sintassi

Total.isBottomNPercent( expr, n, [, filter [, group ]] )

Argomenti

Restituisce

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.

Esempio

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.

Vedere anche

Total.isBottomN

Total.isTopN

Total.isTopNPercent

Total.isTopN

Questa funzione restituisce un valore booleano che indica se il valore di un determinato campo numerico è uno degli n valori più alti.

Sintassi

Total.isTopN( expr, n, [, filter [, group ]] )

Argomenti

Restituisce

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.

Esempio

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.

Vedere anche

Total.isTopNPercent

Total.isBottomN

Total.isBottomNPercent

Total.isTopNPercent

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.

Sintassi

Total.isTopNPercent( expr, n, [, filter [, group ]] )

Argomenti

Restituisce

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.

Esempio

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.

Vedere anche

Total.isTopN

Total.isBottomN

Total.isBottomNPercent

Total.last

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.

Sintassi

Total.last( expr [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce l'ultimo valore presente nella sequenza di righe o un valore nullo se il dataset non contiene alcuna riga.

Esempio

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:

Total.last( row.TransDate, row.Action == 'Sell' ); 

Vedere anche

Aggregato Total.first

Aggregato Total.max

Aggregato Total.min

Total.max

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.

Sintassi

Total.max( expr [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce il valore massimo dell'espressione specificata. Essa restituisce un valore nullo se non sono disponibili righe.

Esempio

La seguente istruzione individua lo studente più grande di età in una classe:

Total.max( row.Age ) 

Vedere anche

Aggregato Total.first

Aggregato Total.isBottomNPercent

Aggregato Total.min

Total.median

Questa funzione aggregata calcola il valore della mediana matematica. La metà dei valori sono superiori alla mediana e l'altra metà sono inferiori.

Sintassi

Total.median( expr [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce un valore di mediana dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.

Esempio

La seguente istruzione restituisce l'età media degli studenti in una classe:

Total.median( row.Age ) 

Per restituire la data di nascita media degli studenti in una classe, utilizzare la seguente istruzione:

Total.median( row.BirthDate ) 

Vedere anche

Aggregato Total.ave

Aggregato Total.mode

Aggregato Total.movingAve

Aggregato Total.stdDev

Aggregato Total.variance

Aggregato Total.weightedAve

Total.min

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.

Sintassi

Total.min( expr [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce il valore minimo dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.

Esempio

La seguente istruzione restituisce l'età dello studente più giovane in una classe:

Total.min( row.Age ) 

Vedere anche

Aggregato Total.first

Aggregato Total.isBottomNPercent

Aggregato Total.max

Total.mode

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.

Sintassi

Total.mode( expr [, filter [, group ]] )

Argomenti

Restituisce

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.

Esempio

La seguente istruzione restituisce l'età più frequente degli studenti in una classe:

Total.mode( row.Age ) 

Vedere anche

Aggregato Total.ave

Aggregato Total.median

Aggregato Total.movingAve

Aggregato Total.stdDev

Aggregato Total.variance

Aggregato Total.weightedAve

Total.movingAve

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.

Sintassi

Total.movingAve( expr, window [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce un valore medio dinamico dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.

Esempio

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:

Total.movingAve( row.price, 5 ); 

Vedere anche

Aggregato Total.ave

Aggregato Total.median

Aggregato Total.mode

Aggregato Total.stdDev

Aggregato Total.variance

Aggregato Total.weightedAve

Total.percentile

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.

Sintassi

Argomenti

Restituisce

Questa funzione restituisce il valore che si trova alla percentuale specificata nella serie di valori analizzati.

Esempio

La seguente istruzione restituisce il cinquantesimo valore di punteggio percentuale:

Total.percentile( row.TestScore, 0.5) 

Se la serie di punteggi di verifica nella colonna specificata è 10, 20, 30, 40 e 50, tale istruzione restituisce 30.

Vedere anche

Total.percentRank

Total.percentSum

Total.quartile

Total.percentRank

Questa funzione calcola la classificazione di percentuale di un valore in un campo specificato.

Sintassi

percentRank( expr, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce la classificazione di percentuale del valore nel campo specificato. Il valore di rendimento è compreso tra zero e uno.

Esempio

La seguente istruzione restituisce la classificazione di percentuale di un punteggio compreso tra tutti i punteggi in una colonna:

Total.percentRank( row.Scores ) 

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.

Vedere anche

Total.percentile

Total.percentSum

Total.quartile

Total.percentSum

Questa funzione calcola t.

Sintassi

percentSum( expr [, filter [, group ]])

Argomenti

Restituisce

Questa funzione restituisce la percentuale del contributo di questo valore alla somma di tutti i valori nell'intervallo.

Esempio

La seguente istruzione restituisce la percentuale di contributo di questo importo di ordine alla somma degli importi di ordini:

Total.percentSum( row.OrderAmt ) 

Vedere anche

Total.percentile

Total.percentRank

Total.quartile

Total.quartile

Questa funzione calcola il valore in una serie definita di valori per cui 0%, 25%, 50%, 75% o 100% dei valori nella serie è maggiore.

Sintassi

quartile( expr, quartile, [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce il valore nella serie specificata che rientra nel quartile indicato.

Esempio

La seguente istruzione restituisce l'importo dell'ordine per cui il 75% è inferiore e il 25% è superiore:

Total.quartile( row.OrderAmt, 3) 

Vedere anche

Total.percentile

Total.percentRank

Total.percentSum

Total.rank

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.

Sintassi

rank( expr [, filter [, group ]] )

Argomenti

Restituisce

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

Esempio

La seguente istruzione restituisce la classificazione del campo OrderAmt tra tutti gli importi di ordini nella colonna OrderAmt.

Total.rank( row.OrderAmt ) 

Vedere anche

Total.percentRank

Total.runningCount

Questa funzione calcola un totale di righe dinamico.

Sintassi

runningCount( filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce il totale di righe dinamico.

Esempio

La seguente istruzione restituisce il totale in esecuzione per un prospetto:

Total.runningCount( ) 

Vedere anche

Aggregato Total.count

Aggregato Total.percentRank

Total.stdDev

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.

Sintassi

Total.stdDev( expr [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce uno scarto medio standard dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.

Vedere anche

Aggregato Total.ave

Aggregato Total.median

Aggregato Total.mode

Aggregato Total.movingAve

Aggregato Total.variance

Aggregato Total.weightedAve

Total.sum

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.

Sintassi

Total.sum( expr [, filter [, group ]] )

Argomenti

Restituisce

La somma dell'espressione specificata. Restituisce zero se non sono disponibili righe.

Esempio

La seguente istruzione somma gli importi di ordini per un cliente:

Total.sum( row.OrderAmt ) 

Vedere anche

Aggregato Total.count

Aggregato Total.percentRank

Total.variance

Questa funzione aggregata calcola la varianza statistica di una sequenza di numeri. La varianza è una misura della diffusione di una serie di valori.

Sintassi

Total.variance( expr [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce lo scarto dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.

Vedere anche

Aggregato Total.ave

Aggregato Total.median

Aggregato Total.mode

Aggregato Total.movingAve

Aggregato Total.stdDev

Aggregato Total.weightedAve

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.

Sintassi

Total.weightedAve( expr, weight [, filter [, group ]] )

Argomenti

Restituisce

Questa funzione restituisce il valore di media ponderato dell'espressione specificata. Restituisce un valore nullo se non sono disponibili righe.

Esempio

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:

Total.weightedAve( row.purchasePrice, row.shareCount ) 

Vedere anche

Aggregato Total.ave

Aggregato Total.median

Aggregato Total.mode

Aggregato Total.movingAve

Aggregato Total.stdDev

Aggregato Total.variance


(c) Copyright Actuate Corporation 2006

Argomento precedenteArgomento successivo