![]() ![]() |
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:
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:
Du kan bruke to valgfrie argumenter for å angi filtrering og gruppering, i alle aggregeringer:
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:
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.
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:
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:
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".
OVERALL
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.
Total.ave( expr [, filter [, group ]] )
Denne funksjonen returnerer gjennomsnittsverdien for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.
Følgende setning returnerer gjennomsnittsalderen på studenter i en klasse:
Hvis du vil at gjennomsnittsbursdag for studenter i en klasse skal returneres, bruker du følgende setning:
Aggregeringen Total.median
Aggregeringen Total.mode
Aggregeringen Total.movingAve
Aggregeringen Total.stdDev
Aggregeringen Total.variance
Aggregeringen Total.weightedAve
Denne funksjonen teller antall rader i gruppen.
Total.count( [ filter [, group ]] )
Dette eksempelet teller antall mannlige og kvinnelige studenter i en klasse. Du må opprette to dataposter. Sett den første til:
Sett den andre til:
Aggregeringen Total.countDistinct
Aggregeringen Total.sum
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.
Total.countDistinct ( expr [, filter [, group ]] )
Antall distinkte verdier i en gruppe eller datasett. Returnerer null hvis ingen rader er tilgjengelig.
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:
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:
Aggregeringen Total.count
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.
Total.first( expr [, filter [, group ]] )
Denne funksjonen returnerer den første verdien som vises i radsekvensen, eller null hvis datasettet ikke inneholder rader.
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:
Aggregeringen Total.isBottomNPercent
Aggregeringen Total.max
Aggregeringen Total.min
Denne funksjonen returnerer en boolsk verdi som viser om verdien i et angitt numerisk felt er en av de n laveste verdiene.
Total.isBottomN( expr, n, [, filter [, group ]] )
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.
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.
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.
Total.isBottomNPercent( expr, n, [, filter [, group ]] )
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.
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.
Denne funksjonen returnerer en boolsk verdi som viser om verdien i et angitt numerisk felt er en av de n høyeste verdiene.
Total.isTopN( expr, n, [, filter [, group ]] )
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.
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.
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.
Total.isTopNPercent( expr, n, [, filter [, group ]] )
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.
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.
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.
Total.last( expr [, filter [, group ]] )
Denne funksjonen returnerer den siste verdien som vises i radsekvensen, eller null hvis datasettet ikke inneholder rader.
Tenk deg at en rapport viser transaksjoner for en gitt aksje i løpet av en periode. Følgende setning viser det siste aksjesalget:
Aggregeringen Total.first
Aggregeringen Total.max
Aggregeringen Total.min
Denne funksjonen beregner maksimumsverdien for det gitte uttrykket. Uttrykket evalueres for hver rad, og maksimumsverdien beholdes. Denne funksjonen fungerer med tall, dato eller streng.
Total.max( expr [, filter [, group ]] )
Denne funksjonen returnerer maksimumsverdien for det gitte uttrykket. Den returnerer null hvis ingen rader er tilgjengelig.
Med følgende setning finner du den eldste studenten i en klasse:
Aggregeringen Total.first
Aggregeringen Total.isBottomNPercent
Aggregeringen Total.min
Denne aggregeringsfunksjonen beregner den matematiske medianverdien. Halvparten av verdiene ligger over medianen og halvparten ligger under.
Total.median( expr [, filter [, group ]] )
Denne funksjonen returnerer en medianverdi for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.
Følgende setning returnerer medianalderen på studenter i en klasse:
Hvis du vil at medianbursdag for studenter i en klasse skal returneres, bruker du følgende setning:
Aggregeringen Total.ave
Aggregeringen Total.mode
Aggregeringen Total.movingAve
Aggregeringen Total.stdDev
Aggregeringen Total.variance
Aggregeringen Total.weightedAve
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.
Total.min( expr [, filter [, group ]] )
Denne funksjonen returnerer minimumsverdien for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.
Følgende setning returnerer alderen på den yngste studenten i en klasse:
Aggregeringen Total.first
Aggregeringen Total.isBottomNPercent
Aggregeringen Total.max
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.
Total.mode( expr [, filter [, group ]] )
Denne funksjonen returnerer en modusverdi for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig eller hvis dataene har mer enn én modus.
Følgende setning returnerer den hyppigste alderen på studenter i en klasse:
Aggregeringen Total.ave
Aggregeringen Total.median
Aggregeringen Total.movingAve
Aggregeringen Total.stdDev
Aggregeringen Total.variance
Aggregeringen Total.weightedAve
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.
Total.movingAve( expr, window [, filter [, group ]] )
Denne funksjonen returnerer en flytende gjennomsnittsverdi for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.
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:
Aggregeringen Total.ave
Aggregeringen Total.median
Aggregeringen Total.mode
Aggregeringen Total.stdDev
Aggregeringen Total.variance
Aggregeringen Total.weightedAve
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.
Denne funksjonen returnerer verdien som finnes i den oppgitte persentilen i settet med analyserte verdier.
Følgende setning returnerer den femtiende persentilen av resultatverdien:
Hvis settet med testresultater i den oppgitte kolonnen er 10, 20, 30, 40 og 50, returnerer setningen 30.
Denne funksjonen beregner prosentrangeringen av en verdi i et oppgitt felt.
percentRank( expr, filter [, group ]] )
Denne funksjonen returnerer prosentrangeringen av verdien i det oppgitte feltet. Returverdien ligger mellom null og en.
Følgende setning returnerer rangeringen i prosent av et resultat blant alle resultatene i en kolonne:
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.
Denne funksjonen beregner t.
percentSum( expr [, filter [, group ]])
Denne funksjonen returnerer prosentsatsen for bidraget av denne verdien, til summen av alle verdiene i området.
Følgende setning returnerer prosentsatsen for dette ordrebeløpets bidrag til summen av alle ordrebeløp:
Denne funksjonen beregner verdien i et definert sett med verdier der 0 %, 25 %, 50 %, 75 % eller 100 % av verdiene i settet, er høyere.
quartile( expr, quartile, [, filter [, group ]] )
Denne funksjonen returnerer verdien i det oppgitte settet, som ligger innenfor den oppgitte kvartilen.
Følgende setning returnerer ordrebeløpet der 75 % er lavere og 25 % er høyere:
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.
rank( expr [, filter [, group ]] )
Denne funksjonen returnerer et heltall som gjenspeiler verdirangeringen og har et verdiområde fra 1 til antall poster i verdisettet
Følgende setning returnerer rangeringen av feltet OrderAmt blant alle ordrebeløp i kolonnen OrderAmt.
Denne funksjonen beregner et løpende radantall.
runningCount( filter [, group ]] )
Denne funksjonen returnerer det løpende radantallet.
Følgende setning returnerer det løpende antallet i en rapport:
Aggregeringen Total.count
Aggregeringen Total.percentRank
Aggregeringsfunksjonen beregner det statistiske standardavviket i en tallsekvens. Standardavviket er et mål på fordelingen av et sett med verdier.
Total.stdDev( expr [, filter [, group ]] )
Denne funksjonen returnerer et standardavvik for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.
Aggregeringen Total.ave
Aggregeringen Total.median
Aggregeringen Total.mode
Aggregeringen Total.movingAve
Aggregeringen Total.variance
Aggregeringen Total.weightedAve
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.
Total.sum( expr [, filter [, group ]] )
Summen av det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.
I følgende setning legges alle ordrebeløp for en kunde sammen:
Aggregeringen Total.count
Aggregeringen Total.percentRank
Aggregeringsfunksjonen beregner den statistiske variansen i en tallsekvens. Variansen er et mål på fordelingen av et sett med verdier.
Total.variance( expr [, filter [, group ]] )
Denne funksjonen returnerer variansen for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.
Aggregeringen Total.ave
Aggregeringen Total.median
Aggregeringen Total.mode
Aggregeringen Total.movingAve
Aggregeringen Total.stdDev
Aggregeringen Total.weightedAve
Denne aggregeringsfunksjonen beregner den matematiske veide middelverdien. Hvis argumentene expr eller weight evalueres til null, utelates raden fra gjennomsnittsverdien.
Total.weightedAve( expr, weight [, filter [, group ]] )
Denne funksjonen returnerer den veide gjennomsnittsverdien for det gitte uttrykket. Returnerer null hvis ingen rader er tilgjengelig.
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:
Aggregeringen Total.ave
Aggregeringen Total.median
Aggregeringen Total.mode
Aggregeringen Total.movingAve
Aggregeringen Total.stdDev
Aggregeringen Total.variance
![]() ![]() |