Vorige onderwerpVolgende onderwerp


Klasse Total

De klasse Total treedt op als houder voor aggregatiefuncties. De klasse Total bevat een aantal aggregatiefuncties. Deze functies zijn BIRT-uitbreidingen voor JavaScript waarmee een set rijen kan worden samengevat. De rapportengine van BIRT implementeert een functie in de volgende twee fasen:

BIRT herschrijft elk script dat een aggregatie bevat, waarbij een herzien script wordt gemaakt waarmee de twee fasen worden uitgevoerd. Het enige moment waarop het belangrijk is dat u zich bewust bent van dit proces is bij het opsporen van fouten in een expressie die een aggregatie bevat. Stel dat u een waarde wilt afbeelden in de voettekst voor een groep, waarbij deze waarde een percentage is van het totaal van alle accounts. Met de volgende instructie kunt u deze actie uitvoeren:

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

In het voorgaande voorbeeld zorgt Total.OVERALL ervoor dat BIRT het totaal van alle rijen berekend, ondanks dat de expressie optreedt in een groepstotaal. Voor het berekenen van de expressie in het voorgaande voorbeeld, berekent BIRT in eerste instantie de waarde van het totaal en in tweede instantie de waarde van de afzonderlijke accounts.

De algemene regels voor de klasse Total zijn:

Groeperen en filteren

In alle aggregaties zijn twee optionele argumenten mogelijk voor het opgeven van filtering en groepering:

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

Filterargumenten

Een filterargument levert een booleaanse expressie die in BIRT wordt geëvalueerd voor elke rij. BIRT maakt bij het berekenen van de aggregatie alleen gebruik van de rijen die voldoen aan het filter. Zo kunt u in een rapport de kredietlimieten van de actuele klanten laten optellen, ter vaststelling van het maximale kredietrisico.

De expressie wordt uitgevoerd tijdens de gegevensconversie. De expressie heeft toegang tot de kolommen in de rij, parameters, zelfgedefinieerde functies, en andere resources, volgens de definitie van de hierboven aangegeven contextbeschrijving. Bijvoorbeeld:

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

Als een filterargument null of niet gedefinieerd is, of gelijk is aan Total.NO_FILTER, betekent dat dat er geen filter van toepassing is. Als de toepassing geen filter aanlevert, wordt het filter beschouwd als niet gedefinieerd. Als u een groepsargument gebruikt, geeft u de waarde null op of Total.NO_FILTER om aan te geven dat er geen filter van toepassing is.

Groepargumenten

In rapporten is het vaak nodig de totalen af te beelden voor het actuele groepsniveau. Stel u hebt een rapport dat is gegroepeerd op klanten en orders, waarbij de detailrecords regelitems van de orders weergeven. Elk regelitem heeft een prijs per eenheid en een hoeveelheid, zoals in de volgende aggregatie:

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

Met deze aggregatie worden de waarden voor de actuele groep bij elkaar opgeteld. Als deze in de voettekst wordt geplaatst, wordt het totaal afgebeeld van de regelitems voor die order. Als deze aggregatie in de voettekst voor een klant wordt geplaatst, wordt het totaal afgebeeld van alle regelitems voor alle orders van die klant. Als u de aggregatie in de voettekst van het rapport plaatst, wordt het totaal afgebeeld van alle regelitems voor alle klanten.

Soms heeft de toepassing toegang nodig tot een totaal op een ander groepsniveau. Stel, u wilt weten wat de totale waarde van een order is, als percentage van alle orders voor de klant. In dit geval hebt u toegang nodig tot het totaal van een andere groep dan de actuele groep. Hiervoor kunt u het volgende groepsargument gebruiken:

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

Het argument group kan een van de volgende waarden hebben:

In de onderstaande voorbeelden worden deze typen groepsargumenten geïllustreerd:

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 

U moet ook het argument filter opgeven als u het argument group gebruikt. Als er geen filter nodig is, geeft u null op als waarde voor het filter. De groepsindex wordt niet tussen aanhalingstekens geplaatst. De index moet worden opgegeven met een getal. Hierbij staat 1 voor de groep op niveau 1, terwijl "1" de groep met de naam "1" aangeeft.

Statische eigenschappen

OVERALL

functies

Total.ave

Deze aggregatiefunctie berekent het mathematische gemiddelde. Als de expressie een getal heeft als uitkomst, berekent deze functie het gemiddelde van die getallen. Als de expressie een datum heeft als uitkomst, berekent deze functie de gemiddelde datum.

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent de gemiddelde waarde van de gegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.

Voorbeeld

De onderstaande instructie berekent de gemiddelde leeftijd van de studenten in een klas:

Total.ave( row.Age ) 

Met de volgende instructie wordt de gemiddelde verjaardag berekent van de studenten in een klas:

Total.ave( row.BirthDate ) 

Zie ook

Total.median-aggregatie

Total.mode-aggregatie

Total.movingAve-aggregatie

Total.stdDev-aggregatie

Total.variance-aggregatie

Total.weightedAve-aggregatie

Total.count

Deze functie telt het aantal rijen in een groep.

Syntaxis

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

Argumenten

Voorbeeld

In dit voorbeeld wordt het aantal mannelijke en vrouwelijke studenten in een klas berekend. Hiervoor moeten twee gegevensitems worden gemaakt. Stel het eerste item in op:

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

Stel het tweede item in op:

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

Zie ook

Total.countDistinct-aggregatie

Total.sum-aggregatie

Total.countDistinct

Deze functie berekent het aantal afzonderlijke waarden binnen de groep of gegevensset. Het argument expr levert een expressie voor het groeperen van de waarden. De expressie verwijst naar een gegevensrijkolom. Null-waarden worden geteld als één afzonderlijke waarde.

Syntaxis

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

Argumenten

Resultaat

Het aantal afzonderlijke waarden binnen de groep of gegevensset. Het resultaat is null als er geen rijen beschikbaar zijn.

Voorbeeld

Stel dat u wilt weten hoeveel verschillende nationaliteiten worden vertegenwoordigd door een groep studenten. Hiervoor kunt u een gegevensitem definiëren dat gebruik maakt van de volgende expressie:

Total.countDistinct( row.Country ) 

In deze instructie is row.Country een kolom die de naam of code bevat van het land van herkomst van de studenten. Mogelijk bevatten enkele rijen een null-waarde, wat betekent dat het land van herkomst niet bekend is. Met de volgende instructie kunt u dergelijke rijen uitsluiten van de telling:

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

Zie ook

Total.count-aggregatie

Total.first

Deze aggregatiefunctie retourneert de eerste waarde die voorkomt in een gegevensset. Dit is de eerste waarde die wordt opgehaald uit de gegevensset, bij het ophalen van rijen met behulp van de sorteervolgorde zoals gedefinieerd voor de tabel of lijst.

Syntaxis

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

Argumenten

Resultaat

Deze functie retourneert de eerste waarde die voorkomt in een reeks rijen, of de waarde null als de gegevensset geen rijen bevat.

Voorbeeld

Stel dat u een rapport hebt dat de transacties vermeld voor een bepaald aandeel gedurende een bepaalde periode. Met de volgende instructie beeldt u de eerste aanschaf van het aandeel af:

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

Zie ook

Total.isBottomNPercent-aggregatie

Total.max-aggregatie

Total.min-aggregatie

Total.isBottomN

Deze functie retourneert een booleaan die aangeeft of de waarde van een opgegeven numeriek veld behoort tot de laagste n waarden.

Syntaxis

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

Argumenten

Resultaat

Het resultaat van de functie is waar of onwaar (true/false). Het resultaat van de functie is waar (true) als de waarde in het numerieke veld deel uitmaakt van de onderste n waarden van alle waarden in deze kolom.

Voorbeeld

Stel dat een rapportkolom vijf rijen bevat, met de waarden 1, 2, 3, 4 en 5. Met Total.isBottomN(expr, 2) test u of het veld dat wordt aangegeven door de expr een 1 of een 2 bevat, de laagste twee getallen in de kolom.

Zie ook

Total.isBottomNPercent

Total.isTopN

Total.isTopNPercent

Total.isBottomNPercent

Deze functie retourneert een booleaan die aangeeft of de waarde van een opgegeven numeriek veld behoort tot de laagste n procent van alle waarden in de kolom.

Syntaxis

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

Argumenten

Resultaat

Het resultaat van de functie is waar of onwaar (true/false). Het resultaat van de functie is waar (true) als de waarde in het veld deel uitmaakt van de onderste n procent van alle waarden in deze kolom.

Voorbeeld

Stel dat een rapportkolom vijf rijen bevat, met de waarden 1, 2, 3, 4 en 5. Met Total.isBottomNPercent(expr, 60) test u of het veld dat wordt aangegeven door de expr een 1, 2 of 3 bevat, de laagste zestig procent van de getallen in de kolom.

Zie ook

Total.isBottomN

Total.isTopN

Total.isTopNPercent

Total.isTopN

Deze functie retourneert een booleaan die aangeeft of de waarde van een opgegeven numeriek veld behoort tot de hoogste n waarden.

Syntaxis

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

Argumenten

Resultaat

Het resultaat van de functie is waar of onwaar (true/false). Het resultaat van de functie is waar (true) als de waarde in het numerieke veld deel uitmaakt van de bovenste n waarden van alle waarden in deze kolom.

Voorbeeld

Stel dat een rapportkolom vijf rijen bevat, met de waarden 1, 2, 3, 4 en 5. Met Total.isTopN(expr, 2) test u of het veld dat wordt aangegeven door de expr een 4 of een 5 bevat, de hoogste twee getallen in de kolom.

Zie ook

Total.isTopNPercent

Total.isBottomN

Total.isBottomNPercent

Total.isTopNPercent

Deze functie retourneert een booleaan die aangeeft of de waarde van een opgegeven numeriek veld behoort tot de bovenste n procent van alle waarden in de kolom.

Syntaxis

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

Argumenten

Resultaat

Het resultaat van de functie is waar of onwaar (true/false). Het resultaat van de functie is waar (true) als de waarde in het veld deel uitmaakt van de bovenste n procent van alle waarden in deze kolom.

Voorbeeld

Stel dat een rapportkolom vijf rijen bevat, met de waarden 1, 2, 3, 4 en 5. Met Total.isTopNPercent(expr, 60) test u of het veld dat wordt aangegeven door de expr een 3, 4 of 5 bevat, de hoogste zestig procent van de getallen in de kolom.

Zie ook

Total.isTopN

Total.isBottomN

Total.isBottomNPercent

Total.last

Deze functie retourneert de laatste waarde die voorkomt in een gegevensset. Dit is de laatste waarde die wordt opgehaald uit de gegevensset, bij het ophalen van rijen met behulp van de sorteervolgorde zoals gedefinieerd voor de tabel of lijst.

Syntaxis

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

Argumenten

Resultaat

Deze functie retourneert de laatste waarde die voorkomt in een reeks rijen, of de waarde null als de gegevensset geen rijen bevat.

Voorbeeld

Stel dat u een rapport hebt dat de transacties vermeld voor een bepaald aandeel gedurende een bepaalde periode. Met de volgende instructie beeldt u de meest recente verkoop van het aandeel af:

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

Zie ook

Total.first-aggregatie

Total.max-aggregatie

Total.min-aggregatie

Total.max

Deze functie berekent de maximumwaarde van de betreffende expressie. De expressie wordt geëvalueerd voor elke rij, waarbij de maximale waarde wordt bewaard. Deze functie kunt u gebruiken voor getallen, reeksen en datums.

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent de maximumwaarde van de betreffende expressie. Het resultaat is null als er geen rijen beschikbaar zijn.

Voorbeeld

Met de volgende instructie vindt u de oudste student van de klas:

Total.max( row.Age ) 

Zie ook

Total.first-aggregatie

Total.isBottomNPercent-aggregatie

Total.min-aggregatie

Total.median

Deze aggregatiefunctie berekent de mathematische mediaanwaarde. De helft van de waarden liggen boven de mediaan, de andere helft eronder.

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent de mediaanwaarde voor de expressie. Het resultaat is null als er geen rijen beschikbaar zijn.

Voorbeeld

De onderstaande instructie berekent de mediaanleeftijd van de studenten in een klas:

Total.median( row.Age ) 

Als u de middelste (mediaan) verjaardag van de studenten in een klas wilt bepalen, gebruikt u de volgende instructie:

Total.median( row.BirthDate ) 

Zie ook

Total.ave-aggregatie

Total.mode-aggregatie

Total.movingAve-aggregatie

Total.stdDev-aggregatie

Total.variance-aggregatie

Total.weightedAve-aggregatie

Total.min

Deze aggregatiefunctie berekent de minimumwaarde van de expressie. De expressie wordt geëvalueerd voor elke rij, waarbij de minimale waarde wordt bewaard. Deze functie kunt u gebruiken voor elk enkelvoudig type: getallen, datums en reeksen.

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent de minimumwaarde van de gegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.

Voorbeeld

De onderstaande instructie retourneert de leeftijd van de jongste student in de klas:

Total.min( row.Age ) 

Zie ook

Total.first-aggregatie

Total.isBottomNPercent-aggregatie

Total.max-aggregatie

Total.mode

Deze aggregatiefunctie berekent de mathematische moduswaarde. De modus is de waarde die het meest voorkomt in de gegevens. In de reeks {1, 2, 3, 2, 4, 7} is 2 de modus omdat het tweemaal voorkomt en alle andere getallen slechts eenmaal. Als in een gegevensset meerdere modussen zijn, zoals bijvoorbeeld in de reeks {1,2,3,2,3}, levert deze aggregatiefunctie de waarde null op.

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent de moduswaarde van de gegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn of als de gegevens meerdere modussen bevatten.

Voorbeeld

De onderstaande instructie berekent de meest voorkomende leeftijd onder de studenten in een klas:

Total.mode( row.Age ) 

Zie ook

Total.ave-aggregatie

Total.median-aggregatie

Total.movingAve-aggregatie

Total.stdDev-aggregatie

Total.variance-aggregatie

Total.weightedAve-aggregatie

Total.movingAve

Deze aggregatiefunctie berekent een voortschrijdend gemiddelde. Het argument expr levert de waarde waarvoor het gemiddelde wordt berekend en het argument window geeft aan welke rijen daarbij moeten worden betrokken. Het gemiddelde voor de rijen wordt berekend in de volgorde die is aangegeven in de context (doorgaans een sorteerbewerking voor een lijst- of tabelelement).

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent het voortschrijdende gemiddelde voor de expressie. Het resultaat is null als er geen rijen beschikbaar zijn.

Voorbeeld

Stel dat u een rapport hebt dat per dag de koers van een aandeel aangeeft. Als u het voortschrijdende gemiddelde wilt afbeelden van de aandelenkoers gedurende de laatste vijf dagen, kunt u daarvoor de volgende instructie gebruiken:

Total.movingAve( row.price, 5 ); 

Zie ook

Total.ave-aggregatie

Total.median-aggregatie

Total.mode-aggregatie

Total.stdDev-aggregatie

Total.variance-aggregatie

Total.weightedAve-aggregatie

Total.percentile

Deze functie onderzoekt een set waarden en retourneert de waarde die zich bevindt op een opgegeven percentiel van alle waarden in de set. Stel bijvoorbeeld dat u wilt weten welke score hoort bij de 90ste percentiel van alle scores voor een test.

Syntaxis

Argumenten

Resultaat

Deze functie retourneert de waarde die zich bevindt bij de opgegeven percentiel in de set van geanalyseerde waarden.

Voorbeeld

De volgende instructie levert de scorewaarde op voor de 50ste percentiel:

Total.percentile( row.TestScore, 0.5) 

Als de set scores in de opgegeven kolom bestaat uit 10, 20, 30, 40, en 50, heeft deze instructie de waarde 30 als resultaat.

Zie ook

Total.percentRank

Total.percentSum

Total.quartile

Total.percentRank

Deze functie berekent de procentuele rang van een waarde in een bepaald veld.

Syntaxis

percentRank( expr, filter [, group ]] )

Argumenten

Resultaat

Deze functie berekent de procentuele rang van de waarde in het opgegeven veld. De retourwaarde ligt tussen nul en één.

Voorbeeld

Met de volgende instructie wordt de procentuele rang berekend van een score ten opzichte van alle scores in een kolom:

Total.percentRank( row.Scores ) 

Als de scores in het evaluatiebereik 10, 10, 20, en 50 zijn, en de score in de cel waarvoor deze instructie geldt is 30, is de retourwaarde 0,5 omdat de helft van de waarden hoger is dan 20 en de andere helft lager dan 20.

Zie ook

Total.percentile

Total.percentSum

Total.quartile

Total.percentSum

Deze functie berekent een percentage ten opzichte van de totale som.

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent het percentage van de bijdrage van deze waarde aan de som van alle waarden in het bereik.

Voorbeeld

De volgende instructie berekent de procentuele bijdrage van een order ten opzichte van de som van alle orders:

Total.percentSum( row.OrderAmt ) 

Zie ook

Total.percentile

Total.percentRank

Total.quartile

Total.quartile

Deze functie berekent de waarde binnen een set gedefinieerde waarden waarvoor 0%, 25%, 50%, 75% of 100% van de waarden in de set groter zijn.

Syntaxis

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

Argumenten

Resultaat

Deze functie retourneert de waarde uit de opgegeven set die samenvalt met het opgegeven kwartiel.

Voorbeeld

De volgende instructie retourneert het bedrag van de order ten opzichte waarvan 75% van de orders goedkoper en 25% duurder zijn:

Total.quartile( row.OrderAmt, 3) 

Zie ook

Total.percentile

Total.percentRank

Total.percentSum

Total.rank

Deze functie berekent de rang van een waarde binnen een set waarden. De waarde van de rang varieert van 1 tot het aantal waarden in de set. Als twee waarden identiek zijn, hebben ze dezelfde rang.

Syntaxis

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

Argumenten

Resultaat

Deze functie levert een geheel getal op dat de rang van de waarde aangeeft. Dit getal ligt tussen 1 en het aantal items in de set van waarden.

Voorbeeld

Met de volgende instructie bepaalt u de rang van een veld OrderAmt binnen alle items in de kolom OrderAmt.

Total.rank( row.OrderAmt ) 

Zie ook

Total.percentRank

Total.runningCount

Deze functie berekent een lopende telling van rijen.

Syntaxis

runningCount( filter [, group ]] )

Argumenten

Resultaat

Deze functie berekent de lopende telling van rijen.

Voorbeeld

De volgende instructie levert de lopende telling op voor een rapport:

Total.runningCount( ) 

Zie ook

Total.count-aggregatie

Total.percentRank-aggregatie

Total.stdDev

Deze aggregatiefunctie berekent de standaarddeviatie van een reeks getallen. De standaarddeviatie is een indicatie van de verspreiding van een set waarden.

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent de standaarddeviatie voor een gegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.

Zie ook

Total.ave-aggregatie

Total.median-aggregatie

Total.mode-aggregatie

Total.movingAve-aggregatie

Total.variance-aggregatie

Total.weightedAve-aggregatie

Total.sum

Deze aggregatiefunctie berekent de som van alle waarden voor de rijen in de groep. De waarde voor elke rij wordt berekent met de expressie bij het argument expr. De som wordt verkregen door al deze waarden bij elkaar op te tellen.

Syntaxis

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

Argumenten

Resultaat

Het totaal voor de opgegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.

Voorbeeld

Met de volgende instructie bepaalt u het totaal van de orders voor een klant:

Total.sum( row.OrderAmt ) 

Zie ook

Total.count-aggregatie

Total.percentRankaggregatie

Total.variance

Deze aggregatiefunctie berekent de statistische variantie van een reeks getallen. De variantie is een indicatie van de verspreiding van een set waarden.

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent de variantie van de betreffende expressie. Het resultaat is null als er geen rijen beschikbaar zijn.

Zie ook

Total.ave-aggregatie

Total.median-aggregatie

Total.mode-aggregatie

Total.movingAve-aggregatie

Total.stdDev-aggregatie

Total.weightedAve-aggregatie

Total.weightedAve

Deze aggregatiefunctie berekent de rekenkundig gewogen gemiddelde waarde. Als een van de argumenten expr of weight na evaluatie de waarde null oplevert, wordt de rij uitgesloten voor het gemiddelde.

Syntaxis

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

Argumenten

Resultaat

Deze functie berekent de gewogen gemiddelde waarde van de gegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.

Voorbeeld

Stel dat u een financiële toepassing hebt die bijhoudt welke aantallen aandelen zijn aangeschaft en op welk moment dat is gebeurd. Voor elke gebeurtenis geldt een andere aankoopprijs voor het aantal aangeschafte aandelen. Met de volgende instructie berekent u de gewogen gemiddelde aankoopprijs:

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

Zie ook

Total.ave-aggregatie

Total.median-aggregatie

Total.mode-aggregatie

Total.movingAve-aggregatie

Total.stdDev-aggregatie

Total.variance-aggregatie


(c) Copyright Actuate Corporation 2006

Vorige onderwerpVolgende onderwerp