Forrige emneNeste emne


Klassen Total

Total-klassen fungerer som en holder for aggregeringsfunksjonene. Denne klassen inneholder en rekke funksjoner for aggregering. Disse funksjonene er BIRT-utvidelser for JavaScript og summerer et sett med rader. BIRT-rapportmotoren implementerer en funksjon i følgende to faser:

BIRT skriver om alle skript som inneholder en aggregering, og oppretter et endret skript som utfører de to fasene. Den eneste gangen det er viktig å være oppmerksom på denne prosessen, er ved feilsøking av et uttrykk som inneholder en aggregering. Tenk deg et eksempel der du viser en verdi i bunnteksten for en gruppe, og verdien er en prosent av totalen for alle kontoene. Følgende setning utfører denne handlingen:

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

I eksempelet ovenfor brukes Total.OVERALL slik at BIRT kan beregne den aggregerte summen over alle radene, selv om uttrykket vises i en gruppetotal. Hvis du vil beregne uttrykket i eksempelet ovenfor, beregner BIRT den totale balansen i en omgang og verdien for kontoen i en annen omgang.

Nedenfor ser du de generelle reglene for Total-klassen:

Om gruppering og filtrering

Du kan bruke to valgfrie argumenter for å angi filtrering og gruppering, i alle aggregeringer:

Total.<aggregate function> ( ..., filter, group ) 

Om filterargument

Et filterargument gir et boolsk uttrykk som evalueres på hver enkelt rad i BIRT. BIRT tar bare med rader som samsvarer med filteret, når aggregeringen beregnes. For eksempel kan en rapport summere kredittgrensen for aktive kunder for å fastsette den maksimale kreditteksponeringen.

Uttrykket utføres i datatransformeringsfasen. Det har tilgang til kolonner i en rad, parametere, brukerdefinerte funksjoner og andre ressurser som er definert i kontekstbeskrivelsen ovenfor. Eksempel:

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

Et filterargument som er null eller udefinert eller Total.NO_FILTER, betyr at det ikke er oppgitt filter. Hvis applikasjonen ikke har filter, er standardinnstillingen udefinert. Hvis du oppgir et gruppeargument, må du angi enten null eller Total.NO_FILTER for å vise at det ikke er filtrering.

Om gruppeargument

Det er ofte behov for at rapporter viser totaler for det gjeldende grupperingsnivået. Tenk deg for eksempel at en rapport grupperes etter kunder og ordrer, og at detaljpostene representerer linjeposter i ordrer. Hver linjepost har en enhetspris og et antall, som vist i følgende aggregering:

Total.sum( row["price"] * row["quantity"] ) 

Denne aggregeringen summerer verdiene over gjeldende gruppe. Hvis den plasseres i bunnteksten, vises summen av linjepostene for ordren. Hvis den plasseres i kundebunnteksten, vises summen av alle linjepostene for alle ordrer for kunden. Hvis den plasseres i rapportbunnteksten, vises summen av alle linjepostene for alle kunder.

Av og til er det imidlertid nødvendig at applikasjonen har tilgang til en total fra et annet grupperingsnivå. Kanskje har du behov for å vite totalverdien for en ordre, vist i en prosentsats av alle ordrer for kunden. I så fall må du ha tilgang til totalen for en annen gruppe enn gjeldende gruppe. Dette gjør du ved hjelp av grupperingsargumentet:

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

Grupperingsargumentet kan være ett av følgende:

Eksemplene nedenfor illustrerer disse gruppeargumenttypene:

Total.sum( row["myCol"] null, null ); // Current group 
Total.sum( row["myCol"], null, "Customer" ); // By name 
Total.sum( row["myCol"], null, "row[`custID']" ); // By group key 
Total.sum( row["myCol"], null, 1 ); // By group index 
Total.sum( row["myCol"], null, "Overall" ); // Grand totals 
Total.sum( row["myCol"], null, 0 ); // Grand totals 

Du må oppgi filterargumentet når du bruker grupperingsargumentet. Hvis du ikke trenger et filter, gir du null som verdi for filteret. Gruppeindeksen står ikke i anførselstegn. Den må oppgis som et tall. Det betyr at 1 er gruppen på nivå 1, mens "1" er gruppen med navnet "1".

Statiske egenskaper

OVERALL

Funksjoner

Total.ave

Denne aggregeringsfunksjonen beregner den matematiske middelverdien. Hvis uttrykket evalueres til et tall, returnerer funksjonen tallenes gjennomsnittsverdi. Hvis uttrykket evalueres til en dato, returnerer funksjonen gjennomsnittsdatoen.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer gjennomsnittsverdien for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.

Eksempel

Følgende setning returnerer gjennomsnittsalderen på studenter i en klasse:

Total.ave( row.Age ) 

Hvis du vil at gjennomsnittsbursdag for studenter i en klasse skal returneres, bruker du følgende setning:

Total.ave( row.BirthDate ) 

Se også

Aggregeringen Total.median

Aggregeringen Total.mode

Aggregeringen Total.movingAve

Aggregeringen Total.stdDev

Aggregeringen Total.variance

Aggregeringen Total.weightedAve

Total.count

Denne funksjonen teller antall rader i gruppen.

Syntaks

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

Argumenter

Eksempel

Dette eksempelet teller antall mannlige og kvinnelige studenter i en klasse. Du må opprette to dataposter. Sett den første til:

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

Sett den andre til:

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

Se også

Aggregeringen Total.countDistinct

Aggregeringen Total.sum

Total.countDistinct

Denne funksjonen beregner antall distinkte verdier i gruppen eller datasettet. Argumentet expr gir et uttrykk som brukes til å gruppere verdiene. Uttrykket refererer til en dataradkolonne. Nullverdier telles som én distinkt verdi.

Syntaks

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

Argumenter

Returnerer

Antall distinkte verdier i en gruppe eller datasett. Returnerer null hvis ingen rader er tilgjengelig.

Eksempel

Tenk deg at vi vil vite antall land som representeres av en gruppe med studenter. Vi kan definere en datapost som bruker følgende uttrykk:

Total.countDistinct( row.Country ) 

I denne setningen er row.Country en kolonne som inneholder navnet på eller koden for studentens hjemland. Hvis noen av radene inneholder null, betyr det at vi ikke kjenner til studentenes hjemland. Bruk følgende setning til å ekskludere slike rader fra antallet:

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

Se også

Aggregeringen Total.count

Total.first

Denne aggregeringsfunksjonen returnerer den første verdien som vises i et datasett. Dette er den første verdien som hentes fra datasettet, når radene hentes med den sorteringsrekkefølgen som er definert for tabellen eller listen.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer den første verdien som vises i radsekvensen, eller null hvis datasettet ikke inneholder rader.

Eksempel

Tenk deg at en rapport viser transaksjoner for en gitt aksje i løpet av en periode. Følgende setning viser det tidligste aksjekjøpet:

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

Se også

Aggregeringen Total.isBottomNPercent

Aggregeringen Total.max

Aggregeringen Total.min

Total.isBottomN

Denne funksjonen returnerer en boolsk verdi som viser om verdien i et angitt numerisk felt er en av de n laveste verdiene.

Syntaks

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

Argumenter

Returnerer

Denne funksjon returnerer sann (true) eller usann (false). Funksjonen returnerer sann hvis verdien i det numeriske feltet er en av de n laveste verdiene av alle verdiene i denne kolonnen.

Eksempel

Tenk deg at en rapportkolonne har fem kolonner med verdiene 1, 2, 3, 4 og 5. Total.isBottomN(expr, 2) tester om feltet, som representeres av expr, inneholder 1 eller 2, de to laveste tallene i kolonnen.

Se også

Total.isBottomNPercent

Total.isTopN

Total.isTopNPercent

Total.isBottomNPercent

Denne funksjonen returnerer en boolsk verdi som viser om verdien i et oppgitt numerisk felt er en av de n laveste prosentene av alle verdiene i kolonnen.

Syntaks

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

Argumenter

Returnerer

Denne funksjon returnerer sann (true) eller usann (false). Funksjonen returnerer sann hvis verdien i feltet er en av de n laveste prosentene av alle verdiene i denne kolonnen.

Eksempel

Tenk deg at en rapportkolonne har fem kolonner med verdiene 1, 2, 3, 4 og 5. Total.isBottomNPercent(expr, 60) tester om feltet, som representeres av expr, inneholder 1, 2 eller 3, de laveste 60 prosentene av tallene i kolonnen.

Se også

Total.isBottomN

Total.isTopN

Total.isTopNPercent

Total.isTopN

Denne funksjonen returnerer en boolsk verdi som viser om verdien i et angitt numerisk felt er en av de n høyeste verdiene.

Syntaks

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

Argumenter

Returnerer

Denne funksjon returnerer sann (true) eller usann (false). Funksjonen returnerer sann hvis verdien i det numeriske feltet er en av de n høyeste verdiene av alle verdiene i denne kolonnen.

Eksempel

Tenk deg at en rapportkolonne har fem kolonner med verdiene 1, 2, 3, 4 og 5. Total.isTopN(expr, 2) tester om feltet, som representeres av expr, inneholder 4 eller 5, de to høyeste tallene i kolonnen.

Se også

Total.isTopNPercent

Total.isBottomN

Total.isBottomNPercent

Total.isTopNPercent

Denne funksjonen returnerer en boolsk verdi som viser om verdien i et oppgitt numerisk felt er en av de n høyeste prosentene av alle verdiene i kolonnen.

Syntaks

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

Argumenter

Returnerer

Denne funksjon returnerer sann (true) eller usann (false). Funksjonen returnerer sann hvis verdien i feltet er en av de n høyeste prosentene av alle verdiene i denne kolonnen.

Eksempel

Tenk deg at en rapportkolonne har fem kolonner med verdiene 1, 2, 3, 4 og 5. Total.isTopNPercent(expr, 60) tester om feltet, som representeres av expr, inneholder 3, 4 eller 5, de høyeste 60 prosentene av tallene i kolonnen.

Se også

Total.isTopN

Total.isBottomN

Total.isBottomNPercent

Total.last

Denne funksjonen returnerer den siste verdien som vises i et datasett. Dette er den siste verdien som hentes fra datasettet, når radene hentes med den sorteringsrekkefølgen som er definert for tabellen eller listen.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer den siste verdien som vises i radsekvensen, eller null hvis datasettet ikke inneholder rader.

Eksempel

Tenk deg at en rapport viser transaksjoner for en gitt aksje i løpet av en periode. Følgende setning viser det siste aksjesalget:

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

Se også

Aggregeringen Total.first

Aggregeringen Total.max

Aggregeringen Total.min

Total.max

Denne funksjonen beregner maksimumsverdien for det gitte uttrykket. Uttrykket evalueres for hver rad, og maksimumsverdien beholdes. Denne funksjonen fungerer med tall, dato eller streng.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer maksimumsverdien for det gitte uttrykket. Den returnerer null hvis ingen rader er tilgjengelig.

Eksempel

Med følgende setning finner du den eldste studenten i en klasse:

Total.max( row.Age ) 

Se også

Aggregeringen Total.first

Aggregeringen Total.isBottomNPercent

Aggregeringen Total.min

Total.median

Denne aggregeringsfunksjonen beregner den matematiske medianverdien. Halvparten av verdiene ligger over medianen og halvparten ligger under.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer en medianverdi for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.

Eksempel

Følgende setning returnerer medianalderen på studenter i en klasse:

Total.median( row.Age ) 

Hvis du vil at medianbursdag for studenter i en klasse skal returneres, bruker du følgende setning:

Total.median( row.BirthDate ) 

Se også

Aggregeringen Total.ave

Aggregeringen Total.mode

Aggregeringen Total.movingAve

Aggregeringen Total.stdDev

Aggregeringen Total.variance

Aggregeringen Total.weightedAve

Total.min

Denne aggregeringsfunksjonen beregner minimumsverdien for det gitte uttrykket. Uttrykket evalueres for hver rad, og minimumsverdien beholdes. Denne funksjonen fungerer med alle enkle typer: tall, dato eller streng.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer minimumsverdien for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.

Eksempel

Følgende setning returnerer alderen på den yngste studenten i en klasse:

Total.min( row.Age ) 

Se også

Aggregeringen Total.first

Aggregeringen Total.isBottomNPercent

Aggregeringen Total.max

Total.mode

Denne aggregeringsfunksjonen beregner den matematiske modusverdien. Modus er verdien som vises oftest i dataene. I sekvensen {1, 2, 3, 2, 4, 7} er 2 modus fordi det er to forekomster av dette tallet, mens det bare er én forekomst av de andre tallene. Hvis datasettet har flere modus, for eksempel i sekvensen {1,2,3,2,3}, returnerer modusaggregeringen null.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer en modusverdi for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig eller hvis dataene har mer enn én modus.

Eksempel

Følgende setning returnerer den hyppigste alderen på studenter i en klasse:

Total.mode( row.Age ) 

Se også

Aggregeringen Total.ave

Aggregeringen Total.median

Aggregeringen Total.movingAve

Aggregeringen Total.stdDev

Aggregeringen Total.variance

Aggregeringen Total.weightedAve

Total.movingAve

Denne aggregeringsfunksjonen beregner en flytende gjennomsnittsverdi. Argumentet expr gir verdien for gjennomsnitt, og argumentet window gir antall rader som skal tas med. Gjennomsnittsverdien av radene fastsettes av konteksten, vanligvis i den rekkefølge som er angitt for sortering av elementene List eller Table.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer en flytende gjennomsnittsverdi for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.

Eksempel

Tenk deg at en rapport viser den daglige prisen på en aksje. Hvis du vil vise den flytende gjennomsnittsverdien for denne aksjen for de fem siste dagene, bruker du denne setningen:

Total.movingAve( row.price, 5 ); 

Se også

Aggregeringen Total.ave

Aggregeringen Total.median

Aggregeringen Total.mode

Aggregeringen Total.stdDev

Aggregeringen Total.variance

Aggregeringen Total.weightedAve

Total.percentile

Med denne funksjonen undersøkes et sett med verdier, og verdien som ligger i en oppgitt persentil av alle verdiene i settet, returneres. La oss anta at du vil vite hvilket resultat som representerer den nittiende persentilen av alle resultater i en test.

Syntaks

Argumenter

Returnerer

Denne funksjonen returnerer verdien som finnes i den oppgitte persentilen i settet med analyserte verdier.

Eksempel

Følgende setning returnerer den femtiende persentilen av resultatverdien:

Total.percentile( row.TestScore, 0.5) 

Hvis settet med testresultater i den oppgitte kolonnen er 10, 20, 30, 40 og 50, returnerer setningen 30.

Se også

Total.percentRank

Total.percentSum

Total.quartile

Total.percentRank

Denne funksjonen beregner prosentrangeringen av en verdi i et oppgitt felt.

Syntaks

percentRank( expr, filter [, group ]] )

Argumenter

Returnerer

Denne funksjonen returnerer prosentrangeringen av verdien i det oppgitte feltet. Returverdien ligger mellom null og en.

Eksempel

Følgende setning returnerer rangeringen i prosent av et resultat blant alle resultatene i en kolonne:

Total.percentRank( row.Scores ) 

Hvis resultatene i evalueringsområdet er 10, 10, 20 og 50, og resultatet i cellen som inneholder denne setningen er 30, er returverdien 0,5 fordi halvparten av verdiene er over 20 og halvparten er under 20.

Se også

Total.percentile

Total.percentSum

Total.quartile

Total.percentSum

Denne funksjonen beregner t.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer prosentsatsen for bidraget av denne verdien, til summen av alle verdiene i området.

Eksempel

Følgende setning returnerer prosentsatsen for dette ordrebeløpets bidrag til summen av alle ordrebeløp:

Total.percentSum( row.OrderAmt ) 

Se også

Total.percentile

Total.percentRank

Total.quartile

Total.quartile

Denne funksjonen beregner verdien i et definert sett med verdier der 0 %, 25 %, 50 %, 75 % eller 100 % av verdiene i settet, er høyere.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer verdien i det oppgitte settet, som ligger innenfor den oppgitte kvartilen.

Eksempel

Følgende setning returnerer ordrebeløpet der 75 % er lavere og 25 % er høyere:

Total.quartile( row.OrderAmt, 3) 

Se også

Total.percentile

Total.percentRank

Total.percentSum

Total.rank

Denne funksjonen beregner hvor en verdi rangeres i et sett med verdier. Rangeringsverdien ligger i intervallet 1 til antall verdier i settet. Hvis to verdier er identiske, har de samme rangering.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer et heltall som gjenspeiler verdirangeringen og har et verdiområde fra 1 til antall poster i verdisettet

Eksempel

Følgende setning returnerer rangeringen av feltet OrderAmt blant alle ordrebeløp i kolonnen OrderAmt.

Total.rank( row.OrderAmt ) 

Se også

Total.percentRank

Total.runningCount

Denne funksjonen beregner et løpende radantall.

Syntaks

runningCount( filter [, group ]] )

Argumenter

Returnerer

Denne funksjonen returnerer det løpende radantallet.

Eksempel

Følgende setning returnerer det løpende antallet i en rapport:

Total.runningCount( ) 

Se også

Aggregeringen Total.count

Aggregeringen Total.percentRank

Total.stdDev

Aggregeringsfunksjonen beregner det statistiske standardavviket i en tallsekvens. Standardavviket er et mål på fordelingen av et sett med verdier.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer et standardavvik for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.

Se også

Aggregeringen Total.ave

Aggregeringen Total.median

Aggregeringen Total.mode

Aggregeringen Total.movingAve

Aggregeringen Total.variance

Aggregeringen Total.weightedAve

Total.sum

Denne aggregeringsfunksjonen beregner summen som er resultatet av å addere en verdi for hver rad i gruppen. Verdien for hver rad beregnes ved hjelp av uttrykket som er oppgitt i argumentet expr. Summen fås ved å legge alle disse verdiene sammen.

Syntaks

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

Argumenter

Returnerer

Summen av det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.

Eksempel

I følgende setning legges alle ordrebeløp for en kunde sammen:

Total.sum( row.OrderAmt ) 

Se også

Aggregeringen Total.count

Aggregeringen Total.percentRank

Total.variance

Aggregeringsfunksjonen beregner den statistiske variansen i en tallsekvens. Variansen er et mål på fordelingen av et sett med verdier.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer variansen for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.

Se også

Aggregeringen Total.ave

Aggregeringen Total.median

Aggregeringen Total.mode

Aggregeringen Total.movingAve

Aggregeringen Total.stdDev

Aggregeringen Total.weightedAve

Total.weightedAve

Denne aggregeringsfunksjonen beregner den matematiske veide middelverdien. Hvis argumentene expr eller weight evalueres til null, utelates raden fra gjennomsnittsverdien.

Syntaks

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

Argumenter

Returnerer

Denne funksjonen returnerer den veide gjennomsnittsverdien for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.

Eksempel

Tenk deg at en finansapplikasjon sporer sett av en gitt aksje som er kjøpt på forskjellige tidspunkt. Hvert sett har en egen innkjøpspris og et antall aksjer som ble kjøpt for denne prisen. Følgende setning beregner den veide gjennomsnittlige innkjøpsprisen:

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

Se også

Aggregeringen Total.ave

Aggregeringen Total.median

Aggregeringen Total.mode

Aggregeringen Total.movingAve

Aggregeringen Total.stdDev

Aggregeringen Total.variance


(c) Copyright Actuate Corporation 2006

Forrige emneNeste emne