![]() ![]() |
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:
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:
In alle aggregaties zijn twee optionele argumenten mogelijk voor het opgeven van filtering en groepering:
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:
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.
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:
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:
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.
OVERALL
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.
Total.ave( expr [, filter [, group ]] )
Deze functie berekent de gemiddelde waarde van de gegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.
De onderstaande instructie berekent de gemiddelde leeftijd van de studenten in een klas:
Met de volgende instructie wordt de gemiddelde verjaardag berekent van de studenten in een klas:
Total.median-aggregatie
Total.mode-aggregatie
Total.movingAve-aggregatie
Total.stdDev-aggregatie
Total.variance-aggregatie
Total.weightedAve-aggregatie
Deze functie telt het aantal rijen in een groep.
Total.count( [ filter [, group ]] )
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:
Stel het tweede item in op:
Total.countDistinct-aggregatie
Total.sum-aggregatie
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.
Total.countDistinct ( expr [, filter [, group ]] )
Het aantal afzonderlijke waarden binnen de groep of gegevensset. Het resultaat is null als er geen rijen beschikbaar zijn.
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:
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.count-aggregatie
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.
Total.first( expr [, filter [, group ]] )
Deze functie retourneert de eerste waarde die voorkomt in een reeks rijen, of de waarde null als de gegevensset geen rijen bevat.
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.isBottomNPercent-aggregatie
Total.max-aggregatie
Total.min-aggregatie
Deze functie retourneert een booleaan die aangeeft of de waarde van een opgegeven numeriek veld behoort tot de laagste n waarden.
Total.isBottomN( expr, n, [, filter [, group ]] )
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.
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.
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.
Total.isBottomNPercent( expr, n, [, filter [, group ]] )
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.
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.
Deze functie retourneert een booleaan die aangeeft of de waarde van een opgegeven numeriek veld behoort tot de hoogste n waarden.
Total.isTopN( expr, n, [, filter [, group ]] )
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.
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.
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.
Total.isTopNPercent( expr, n, [, filter [, group ]] )
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.
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.
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.
Total.last( expr [, filter [, group ]] )
Deze functie retourneert de laatste waarde die voorkomt in een reeks rijen, of de waarde null als de gegevensset geen rijen bevat.
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.first-aggregatie
Total.max-aggregatie
Total.min-aggregatie
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.
Total.max( expr [, filter [, group ]] )
Deze functie berekent de maximumwaarde van de betreffende expressie. Het resultaat is null als er geen rijen beschikbaar zijn.
Met de volgende instructie vindt u de oudste student van de klas:
Total.first-aggregatie
Total.isBottomNPercent-aggregatie
Total.min-aggregatie
Deze aggregatiefunctie berekent de mathematische mediaanwaarde. De helft van de waarden liggen boven de mediaan, de andere helft eronder.
Total.median( expr [, filter [, group ]] )
Deze functie berekent de mediaanwaarde voor de expressie. Het resultaat is null als er geen rijen beschikbaar zijn.
De onderstaande instructie berekent de mediaanleeftijd van de studenten in een klas:
Als u de middelste (mediaan) verjaardag van de studenten in een klas wilt bepalen, gebruikt u de volgende instructie:
Total.ave-aggregatie
Total.mode-aggregatie
Total.movingAve-aggregatie
Total.stdDev-aggregatie
Total.variance-aggregatie
Total.weightedAve-aggregatie
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.
Total.min( expr [, filter [, group ]] )
Deze functie berekent de minimumwaarde van de gegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.
De onderstaande instructie retourneert de leeftijd van de jongste student in de klas:
Total.first-aggregatie
Total.isBottomNPercent-aggregatie
Total.max-aggregatie
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.
Total.mode( expr [, filter [, group ]] )
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.
De onderstaande instructie berekent de meest voorkomende leeftijd onder de studenten in een klas:
Total.ave-aggregatie
Total.median-aggregatie
Total.movingAve-aggregatie
Total.stdDev-aggregatie
Total.variance-aggregatie
Total.weightedAve-aggregatie
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).
Total.movingAve( expr, window [, filter [, group ]] )
Deze functie berekent het voortschrijdende gemiddelde voor de expressie. Het resultaat is null als er geen rijen beschikbaar zijn.
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.ave-aggregatie
Total.median-aggregatie
Total.mode-aggregatie
Total.stdDev-aggregatie
Total.variance-aggregatie
Total.weightedAve-aggregatie
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.
Deze functie retourneert de waarde die zich bevindt bij de opgegeven percentiel in de set van geanalyseerde waarden.
De volgende instructie levert de scorewaarde op voor de 50ste percentiel:
Als de set scores in de opgegeven kolom bestaat uit 10, 20, 30, 40, en 50, heeft deze instructie de waarde 30 als resultaat.
Deze functie berekent de procentuele rang van een waarde in een bepaald veld.
percentRank( expr, filter [, group ]] )
Deze functie berekent de procentuele rang van de waarde in het opgegeven veld. De retourwaarde ligt tussen nul en één.
Met de volgende instructie wordt de procentuele rang berekend van een score ten opzichte van alle scores in een kolom:
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.
Deze functie berekent een percentage ten opzichte van de totale som.
percentSum( expr [, filter [, group ]] )
Deze functie berekent het percentage van de bijdrage van deze waarde aan de som van alle waarden in het bereik.
De volgende instructie berekent de procentuele bijdrage van een order ten opzichte van de som van alle orders:
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.
quartile( expr, quartile, [, filter [, group ]] )
Deze functie retourneert de waarde uit de opgegeven set die samenvalt met het opgegeven kwartiel.
De volgende instructie retourneert het bedrag van de order ten opzichte waarvan 75% van de orders goedkoper en 25% duurder zijn:
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.
rank( expr [, filter [, group ]] )
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.
Met de volgende instructie bepaalt u de rang van een veld OrderAmt binnen alle items in de kolom OrderAmt.
Deze functie berekent een lopende telling van rijen.
runningCount( filter [, group ]] )
Deze functie berekent de lopende telling van rijen.
De volgende instructie levert de lopende telling op voor een rapport:
Total.count-aggregatie
Total.percentRank-aggregatie
Deze aggregatiefunctie berekent de standaarddeviatie van een reeks getallen. De standaarddeviatie is een indicatie van de verspreiding van een set waarden.
Total.stdDev( expr [, filter [, group ]] )
Deze functie berekent de standaarddeviatie voor een gegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.
Total.ave-aggregatie
Total.median-aggregatie
Total.mode-aggregatie
Total.movingAve-aggregatie
Total.variance-aggregatie
Total.weightedAve-aggregatie
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.
Total.sum( expr [, filter [, group ]] )
Het totaal voor de opgegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.
Met de volgende instructie bepaalt u het totaal van de orders voor een klant:
Total.count-aggregatie
Total.percentRankaggregatie
Deze aggregatiefunctie berekent de statistische variantie van een reeks getallen. De variantie is een indicatie van de verspreiding van een set waarden.
Total.variance( expr [, filter [, group ]] )
Deze functie berekent de variantie van de betreffende expressie. Het resultaat is null als er geen rijen beschikbaar zijn.
Total.ave-aggregatie
Total.median-aggregatie
Total.mode-aggregatie
Total.movingAve-aggregatie
Total.stdDev-aggregatie
Total.weightedAve-aggregatie
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.
Total.weightedAve( expr, weight [, filter [, group ]] )
Deze functie berekent de gewogen gemiddelde waarde van de gegeven expressie. Het resultaat is null als er geen rijen beschikbaar zijn.
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.ave-aggregatie
Total.median-aggregatie
Total.mode-aggregatie
Total.movingAve-aggregatie
Total.stdDev-aggregatie
Total.variance-aggregatie
![]() ![]() |