Forrige emneNæste emne


Klassen Total

Klassen Total er en beholder til beregningsfunktionerne. Klassen Total indeholder en række funktioner til beregning. Funktionerne er BIRT-udvidelser af JavaScript, der beregner totalen for et sæt rækker. En funktion udføres i to faser af BIRT-rapportprogrammet:

BIRT omskriver scripts, der indeholder en beregningsfunktion, så de udfører de to faser. Det eneste tidspunkt, hvor det er vigtigt at være opmærksom på denne proces, er under fejlfinding af et udtryk, der indeholder en beregningsfunktion. Eksempel: Der skal vises en værdi i bundteksten til en gruppe, hvor værdien er en procentdel af det samlede beløb for alle konti. Følgende sætning udfører funktionen:

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

I eksemplet ovenfor bevirker Total.OVERALL, at BIRT beregner summen for alle rækker, selvom udtrykket er placeret i en gruppetotal. Når BIRT skal beregne udtrykket i eksemplet, foretages ét gennemløb, der beregner den samlede saldo, og et andet gennemløb, som beregner værdien for hver konto.

Der er følgende generelle regler for klassen Total:

Om gruppering og filtrering

Til alle beregningsfunktioner kan der overføres to argumenter for at angive filtrering og gruppering:

Total.<beregningsfunktion> ( ..., filter, gruppe ) 

Om filterargumentet

Et filterargument indeholder et boolesk udtryk, som BIRT evaluerer for hver række. Ved beregning af sumværdien medtager BIRT kun de rækker, der matcher filtret. En rapport kunne f.eks. lægge alle aktive kunders kreditmaksimum sammen for at finde den maksimale kreditrisiko.

Udtrykket udføres i datatransformeringsfasen. Det har adgang til kolonner i rækken, parametre, brugerdefinerede funktioner og andre ressourcer, der er defineret i ovenstående kontekstbeskrivelse. Eksempel:

Total.sum( row["Kreditmaksimum"], row["Aktiv"] == 'J' ); 

Hvis filtret er NULL, ikke-defineret eller Total.INTET_FILTER betyder det, at der ikke er angivet et filter. Hvis programmet ikke leverer et filter, bruges standardværdien, som er Ikke-defineret. Hvis du angiver et gruppeargument, skal du enten angive NULL eller Total.INTET_FILTER for at indikere ingen filtrering.

Om gruppeargumentet

Der skal ofte vises totaler for det aktuelle grupperingsniveau i rapporter. Antag f.eks., at en rapport er grupperet efter kunder og ordrer, og at oplysningsrecords'ene repræsenterer produktlinjeelementer i ordrerne. Hvert produktlinjeelement har en enhedspris og et antal som i følgende beregningsfunktion:

Total.sum( row["pris"] * row["antal"] ) 

Beregningsfunktionen lægger værdierne i den aktuelle gruppe sammen. Hvis den placeres i bundteksten, vises summen for den pågældende ordres produktlinjeelementer. Hvis den placeres i kundebundteksten, vises summen for alle produktlinjeelementerne i alle den pågældende kundes ordrer. Hvis den placeres i rapportbundteksten, vises summen for alle produktlinjeelementer for alle kunder.

Undertiden skal et program imidlertid bruge en total fra et andet grupperingsniveau. Det gælder f.eks., hvis der er brug for at få vist den samlede værdi af en ordre som en procent af alle kundens ordrer. I det tilfælde skal der hentes en total for en anden gruppe end den aktuelle gruppe. Det gøres vha. gruppeargumentet:

Total.sum( row.Kreditmaksimum, null, "Kunde" ); 

Gruppeargumentet kan have følgende indhold:

Følgende eksempler illustrerer disse typer gruppeargumenter:

Total.sum( row["myCol"] null, null ); // Aktuel gruppe 
Total.sum( row["myCol"], null, "Kunde" ); // Efter navn 
Total.sum( row["myCol"], null, "row['kundeId']" ); // Efter grupperingsnøgle 
Total.sum( row["myCol"], null, 1 ); // Efter gruppeindeks 
Total.sum( row["myCol"], null, "Overall" ); // Samlet total 
Total.sum( row["myCol"], null, 0 ); // Samlet total 

Filterargumentet skal angives, når du bruger grupperingsargumentet. Angiv NULL som filterværdien, hvis du ikke har brug for et filter. Gruppeindekset skal ikke sættes i anførselstegn. Det skal angives som et tal. Med andre ord betyder 1 gruppen på niveau 1, mens "1" betyder gruppen ved navn "1".

Statiske egenskaber

OVERALL

funktioner

Total.ave

Beregningsfunktionen beregner den matematiske gennemsnitsværdi. Hvis udtrykket evalueres til et tal, returnerer funktionen gennemsnittet af tallene. Hvis udtrykket evalueres til en dato, returnerer funktionen gennemsnitsdatoen.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer gennemsnitsværdien af det angivne udtryk. Returnerer NULL, hvis der ikke er nogen tilgængelige rækker.

Eksempel

Følgende sætning returnerer gennemsnitsalderen for elever i en klasse:

Total.ave( row.Alder ) 

Brug følgende sætning til at returnere gennemsnitsfødselsdatoen for elever i en klasse:

Total.ave( row.Fdato ) 

Se også

Beregningsfunktionen Total.median

Beregningsfunktionen Total.mode

Beregningsfunktionen Total.movingAve

Beregningsfunktionen Total.stdDev

Beregningsfunktionen Total.variance

Beregningsfunktionen Total.weightedAve

Total.count

Funktionen tæller antallet af rækker i gruppen.

Syntaks

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

Argumenter

Eksempel

I eksemplet tælles antallet af drenge og piger i en klasse. De to dataelementer skal oprettes. Angiv den første til:

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

Angiv den anden til:

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

Se også

Beregningsfunktionen Total.countDistinct

Beregningsfunktionen Total.sum

Total.countDistinct

Funktionen beregner antallet af forskellige værdier i gruppen eller datasættet. Argumentet expr angiver det udtryk, værdierne skal grupperes efter. Udtrykket refererer til en datarækkekolonne. Flere NULL-værdier tælles som én værdi.

Syntaks

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

Argumenter

Returnerer

Antallet af forskellige værdier i gruppen eller datasættet. Returnerer nul, hvis der ikke er nogen tilgængelige rækker.

Eksempel

Antag, at du vil finde ud af, hvor mange forskellige lande en gruppe elever repræsenterer. Du kan definere et dataelement, der bruger følgende udtryk:

Total.countDistinct( row.Land ) 

I sætningen er row.Land en kolonne, der indeholder navnet på eller landekoden for elevens hjemland. Antag, at nogle rækker indeholder NULL, fordi hjemlandet er ukendt. Brug følgende sætning til at udelade rækkerne fra antallet:

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

Se også

Beregningsfunktionen Total.count

Total.first

Beregningsfunktionen returnerer den første værdi, der forekommer i et datasæt. Det er den første værdi, der hentes fra datasættet, når der hentes rækker i den sorteringsrækkefølge, der er defineret for tabellen eller listen.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer den første værdi, der forekommer i rækkesekvensen, eller NULL, hvis datasættet ikke indeholder nogen rækker.

Eksempel

Antag, at rapporten viser transaktioner for et bestemt værdipapir i en periode. Følgende sætning viser den tidligste købstransaktion for værdipapiret:

Total.first( row.TransDato, row.Handling == 'Koeb' ); 

Se også

Beregningsfunktionen Total.isBottomNPercent

Beregningsfunktionen Total.max

Beregningsfunktionen Total.min

Total.isBottomN

Funktionen returnerer en boolesk værdi, der angiver, om værdien af et angivet numerisk felt er en af de laveste n værdier.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer true eller false. Funktionen returnerer true, hvis værdien i det numeriske felt findes blandt de nederste n af alle kolonnens værdier.

Eksempel

Antag, at en rapportkolonne har fem rækker, der henholdsvis indeholder værdien 1, 2, 3, 4 og 5. Total.isBottomN(expr, 2) undersøger, om det felt, som repræsenteres af expr, indeholder 1 eller 2 - de to laveste tal i kolonnen.

Se også

Total.isBottomNPercent

Total.isTopN

Total.isTopNPercent

Total.isBottomNPercent

Funktionen returnerer en boolesk værdi, der angiver, om værdien af et angivet numerisk felt er blandt de nederste n procent af alle værdierne i kolonnen.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer true eller false. Funktionen returnerer true, hvis værdien i feltet findes blandt de nederste n procent af alle kolonnens værdier.

Eksempel

Antag, at en rapportkolonne har fem rækker, der henholdsvis indeholder værdien 1, 2, 3, 4 og 5. Total.isBottomNPercent(expr, 60) undersøger, om det felt, som repræsenteres af expr, indeholder 1, 2 eller 3 - de laveste 60 procent af tallene i kolonnen.

Se også

Total.isBottomN

Total.isTopN

Total.isTopNPercent

Total.isTopN

Funktionen returnerer en boolesk værdi, der angiver, om værdien af et angivet numerisk felt er en af de højeste n værdier.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer true eller false. Funktionen returnerer true, hvis værdien i det numeriske felt findes blandt de øverste n for alle kolonnens værdier.

Eksempel

Antag, at en rapportkolonne har fem rækker, der henholdsvis indeholder værdien 1, 2, 3, 4 og 5. Total.isTopN(expr, 2) undersøger, om det felt, som repræsenteres af expr, indeholder 4 eller 5 - de to højeste tal i kolonnen.

Se også

Total.isTopNPercent

Total.isBottomN

Total.isBottomNPercent

Total.isTopNPercent

Funktionen returnerer en boolesk værdi, der angiver, om værdien af et angivet numerisk felt er blandt de øverste n procent af alle værdierne i kolonnen.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer true eller false. Funktionen returnerer true, hvis værdien i feltet findes blandt de øverste n procent af alle kolonnens værdier.

Eksempel

Antag, at en rapportkolonne har fem rækker, der henholdsvis indeholder værdien 1, 2, 3, 4 og 5. Total.isTopNPercent(expr, 60) undersøger, om det felt, som repræsenteres af expr, indeholder 3, 4 eller 5 - de højeste 60 procent af tallene i kolonnen.

Se også

Total.isTopN

Total.isBottomN

Total.isBottomNPercent

Total.last

Funktionen returnerer den sidste værdi, der forekommer i et datasæt. Det er den sidste værdi, der hentes fra datasættet, når der hentes rækker i den sorteringsrækkefølge, der er defineret for tabellen eller listen.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer den sidste værdi, der forekommer i rækkesekvensen, eller NULL, hvis datasættet ikke indeholder nogen rækker.

Eksempel

Antag, at rapporten viser transaktioner for et bestemt værdipapir i en periode. Følgende sætning viser den seneste salgstransaktion for værdipapiret:

Total.last( row.TransDato, row.Handling == 'Salg' ); 

Se også

Beregningsfunktionen Total.first

Beregningsfunktionen Total.max

Beregningsfunktionen Total.min

Total.max

Funktionen beregner den højeste værdi for det givne udtryk. Udtrykket evalueres for hver række, og den største værdi bevares. Funktionen fungerer med datatyperne tal, dato og streng.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer den højeste værdi for det givne udtryk. Den returnerer NULL, hvis der ikke er nogen tilgængelige rækker.

Eksempel

Følgende sætning finder den ældste elev i en klasse:

Total.max( row.Alder ) 

Se også

Beregningsfunktionen Total.first

Beregningsfunktionen Total.isBottomNPercent

Beregningsfunktionen Total.min

Total.median

Beregningsfunktionen beregner den matematiske medianværdi. Halvdelen af værdierne findes over medianen og halvdelen under.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer en medianværdi for det givne udtryk. Returnerer NULL, hvis der ikke er nogen tilgængelige rækker.

Eksempel

Følgende sætning returnerer medianalderen for elever i en klasse:

Total.median( row.Alder ) 

Følgende sætning kan bruges til at returnere medianfødselsdatoen for elever i en klasse:

Total.median( row.Fdato ) 

Se også

Beregningsfunktionen Total.ave

Beregningsfunktionen Total.mode

Beregningsfunktionen Total.movingAve

Beregningsfunktionen Total.stdDev

Beregningsfunktionen Total.variance

Beregningsfunktionen Total.weightedAve

Total.min

Beregningsfunktionen beregner den mindste værdi for det givne udtryk. Udtrykket evalueres for hver række, og den mindste værdi bevares. Funktionen fungerer med alle simple typer: tal, dato eller streng.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer den laveste værdi for det givne udtryk. Returnerer NULL, hvis der ikke er nogen tilgængelige rækker.

Eksempel

Følgende sætning returnerer alderen på den yngste elev i en klasse:

Total.min( row.Alder ) 

Se også

Beregningsfunktionen Total.first

Beregningsfunktionen Total.isBottomNPercent

Beregningsfunktionen Total.max

Total.mode

Beregningsfunktionen beregner den matematiske typeværdi. Typeværdien eller modalværdien er den værdi, der forekommer hyppigst i dataene. I sekvensen {1, 2, 3, 2, 4, 7} er 2 typeværdien, fordi tallet forekommer to gange, mens alle de andre tal kun forekommer én gang. Hvis et datasæt har flere typeværdier, f.eks. i sekvensen {1,2,3,2,3}, returnerer typeberegningen NULL.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer en typeværdi for det givne udtryk. Returnerer NULL, hvis der ikke er nogen tilgængelige rækker, eller hvis datasættet har mere end én typeværdi.

Eksempel

Følgende sætning returnerer den alder, som flest elever i en klasse har:

Total.mode( row.Alder ) 

Se også

Beregningsfunktionen Total.ave

Beregningsfunktionen Total.median

Beregningsfunktionen Total.movingAve

Beregningsfunktionen Total.stdDev

Beregningsfunktionen Total.variance

Beregningsfunktionen Total.weightedAve

Total.movingAve

Beregningsfunktion beregner et løbende gennemsnit. Argumentet expr angiver den værdi, gennemsnittet skal findes af, og argumentet window angiver det antal rækker, der skal behandles. Gennemsnittet af rækkerne beregnes i den rækkefølge, som bestemmes af konteksten, normalt den rækkefølge, der angives af sorteringen for liste- eller tabelelementet.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer en løbende gennemsnitsværdi af det angivne udtryk. Returnerer NULL, hvis der ikke er nogen tilgængelige rækker.

Eksempel

Antag, at en rapport viser dagskursen for et værdipapir. Følgende sætning kan bruges til at få vist det løbende gennemsnit for værdipapiret i de seneste fem dage:

Total.movingAve( row.kurs, 5 ); 

Se også

Beregningsfunktionen Total.ave

Beregningsfunktionen Total.median

Beregningsfunktionen Total.mode

Beregningsfunktionen Total.stdDev

Beregningsfunktionen Total.variance

Beregningsfunktionen Total.weightedAve

Total.percentile

Funktionen undersøger et sæt værdier, og returnerer den værdi, som findes ved en angivet fraktil for alle værdierne i sættet. Den kan f.eks. bruges til at finde det resultat, der repræsenterer den 90. fraktil for alle testresultater.

Syntaks

Argumenter

Returnerer

Funktionen returnerer den værdi, som findes på den angivne fraktil i sættet med analyserede værdier.

Eksempel

Følgende sætning returnerer resultatværdien på 50. fraktil:

Total.percentile( row.TestResultat, 0.5) 

Hvis sættet af testresultater i den angivne kolonne er 10, 20, 30, 40 og 50, returnerer sætningen 30.

Se også

Total.percentRank

Total.percentSum

Total.quartile

Total.percentRank

Funktionen beregner den procentvise rang for en værdi i et angivet felt.

Syntaks

percentRank( expr, filter [, group ]] )

Argumenter

Returnerer

Funktionen returnerer den procentvise rang for en værdi i et angivet felt. Returværdien ligger i intervallet fra nul til 1.

Eksempel

Følgende sætning returnerer et resultats procentvise rang blandt alle resultaterne i en kolonne:

Total.percentRank( row.Resultater ) 

Hvis resultaterne i evalueringsområdet er 10, 10, 20 og 50, og resultatet i den celle, der indeholder sætningen, er 30, er returværdien 0,5, da halvdelen af værdierne er over 20, og halvdelen er under 20.

Se også

Total.percentile

Total.percentSum

Total.quartile

Total.percentSum

Funktionen beregner en sum.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer denne værdis bidrag i procent til summen af alle værdierne i området.

Eksempel

Følgende sætning returnerer dette ordrebeløbs bidrag i procent til summen af alle ordrebeløb:

Total.percentSum( row.OrdreBeloeb ) 

Se også

Total.percentile

Total.percentRank

Total.quartile

Total.quartile

Funktionen beregner den værdi i et defineret sæt værdier, som er mindre end 0 %, 25 %, 50 %, 75 % eller 100 % af værdierne i sættet.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer den værdi i det angivne sæt, der ligger på den angivne kvartil.

Eksempel

Følgende sætning returnerer det ordrebeløb, for hvilket der findes 75 % mindre beløb og 25 % større:

Total.quartile( row.OrdreBeloeb, 3) 

Se også

Total.percentile

Total.percentRank

Total.percentSum

Total.rank

Funktionen beregner en værdis rang i forhold til et sæt værdier. Rangværdien kan ligge fra 1 til antallet af værdier i sættet. Hvis to værdier er ens, har de samme rang.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer et heltal, der afspejler værdiens rang, og har et interval fra 1 til antallet af elementer i værdisættet

Eksempel

Følgende sætning returnerer rangen for feltet OrdreBeloeb i forhold til alle beløbene i kolonnen OrdreBeloeb.

Total.rank( row.OrdreBeloeb ) 

Se også

Total.percentRank

Total.runningCount

Funktion beregner et løbende antal rækker.

Syntaks

runningCount( filter [, group ]] )

Argumenter

Returnerer

Funktion returnerer det løbende antal rækker.

Eksempel

Følgende sætning returnerer det løbende antal for en rapport:

Total.runningCount( ) 

Se også

Beregningsfunktionen Total.count

Beregningsfunktionen Total.percentRank

Total.stdDev

Beregningsfunktionen beregner den statistiske standardafvigelse for en række tal. Standardafvigelsen er et mål for et sæt værdiers spredning.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer en standardafvigelse for det givne udtryk. Returnerer NULL, hvis der ikke er nogen tilgængelige rækker.

Se også

Beregningsfunktionen Total.ave

Beregningsfunktionen Total.median

Beregningsfunktionen Total.mode

Beregningsfunktionen Total.movingAve

Beregningsfunktionen Total.variance

Beregningsfunktionen Total.weightedAve

Total.sum

Beregningsfunktionen beregner en sum, der fremkommer, ved at en værdi for hver række i gruppen lægges sammen med hinanden. Værdien for hver række beregnes ud fra det udtryk, der angives i argumentet expr. Summen findes, ved at alle disse værdier lægges sammen.

Syntaks

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

Argumenter

Returnerer

Summen af det givne udtryk. Returnerer nul, hvis der ikke er nogen tilgængelige rækker.

Eksempel

Følgende sætning finder de samlede ordrebeløb for en kunde:

Total.sum( row.OrdreBeloeb ) 

Se også

Beregningsfunktionen Total.count

Beregningsfunktionen Total.percentRank

Total.variance

Beregningsfunktionen beregner den statistiske varians for en række tal. Variansen er et mål for et sæt værdiers spredning.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer variansen for det givne udtryk. Returnerer NULL, hvis der ikke er nogen tilgængelige rækker.

Se også

Beregningsfunktionen Total.ave

Beregningsfunktionen Total.median

Beregningsfunktionen Total.mode

Beregningsfunktionen Total.movingAve

Beregningsfunktionen Total.stdDev

Beregningsfunktionen Total.weightedAve

Total.weightedAve

Beregningsfunktionen beregner den matematiske, vægtede gennemsnitsværdi. Hvis enten argumentet expr eller weight evalueres til NULL, udelades rækken i gennemsnittet.

Syntaks

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

Argumenter

Returnerer

Funktionen returnerer den vægtede gennemsnitsværdi af det angivne udtryk. Returnerer NULL, hvis der ikke er nogen tilgængelige rækker.

Eksempel

Antag, at et finansprogram holder styr på de portioner, der er købt af et givet værdipapir på forskellige tidspunkter. De enkelte portioner har hver sin købspris og hver sit antal aktier, der er købt til den pris. Følgende sætning beregner den vægtede gennemsnitskøbspris:

Total.weightedAve( row.koebsPris, row.aktieAntal ) 

Se også

Beregningsfunktionen Total.ave

Beregningsfunktionen Total.median

Beregningsfunktionen Total.mode

Beregningsfunktionen Total.movingAve

Beregningsfunktionen Total.stdDev

Beregningsfunktionen Total.variance


(c) Copyright Actuate Corporation 2006

Forrige emneNæste emne