![]() ![]() |
Klassen Total finns som en hållare för aggregatfunktioner. Klassen Total innehåller ett antal funktioner för aggregering. De funktionerna är BIRT-utökningar för JavaScript som summerar en uppsättning rader. BIRT-rapportmotorn implementerar en funktion i följande två faser:
BIRT skriver om alla skript som innehåller ett aggregat och skapar ett ändrat skript som utför de två faserna. Den enda gången som det är viktigt att vara medveten om den här processen är när du felsöker ett uttryck som innehåller ett aggregat. Tänk dig ett exempel där du visar ett värde i en sidfot för en grupp där värdet är en procentsats av totalen för alla kontona. Följande sats utför den åtgärden:
I föregående exempel förorsakar Total.OVERALL BIRT att beräkna den aggregerade summan över alla raderna fastän uttrycket förekommer i ett grupptotal. Om du vill beräkna uttrycket i föregående exempel beräknar BIRT den totala balansen i ett pass och värdet för de olika kontona i ett andra pass.
Följande är de allmänna reglerna för klassen Total:
Det går att använda två valfria argument som visar filtrering och gruppering i alla aggregat:
Ett filterargument ger ett booleskt uttryck som värderas på varje rad i BIRT. BIRT tar endast med rader som är identiska med filtret när aggregatet beräknas. En rapport skulle till exempel kunna summera kreditgränserna för aktiva kunder för att bestämma den maximala kreditexponeringen.
Uttrycket utförs i dataomvandlingsfasen. Det kan ge access till kolumner i raden, parametrar, användardefinierade funktioner och andra resurser som har definierats i kontextbeskrivningen ovan. Exempel:
Ett filterargument som är null eller undefined eller Total.NO_FILTER betyder att inget filter har tagits med. In tillämpningen inte har något filter är standardiställningen undefined. Om du anger ett gruppargument måste du ange antingen null eller Total.NO_FILTER som visar att det inte finns någon filtrering.
Rapporter behöver ofta visa totaler för den aktuella grupperingsnivån. Om du till exempel antar att rapporten är grupperad per kund och order och att de detaljerade posterna representerar radobjekt i order. Varje radobjekt har ett enhetspris och en kvantitet på det sätt som visas i följande aggregat:
Det här aggregatet summerar värden över den aktuella gruppen. Om det placeras i sidfoten visas summan av radobjekt för den ordern. Om det placeras i kundsidfoten visas summan av alla radobjekt för alla beställningar för den kunden. Och om det placeras i rapportsidfoten visas summan av alla radobjekt för alla kunder.
Men i bland behöver tillämpningen ha access till en totalsumma från en annan grupperingsnivå. Du kan till exempel vilja veta det totala värdet för en order som en procentsats av alla beställningar för den kunden. I det fallet måste du ha access till totalen för en grupp som inte är den aktuella gruppen. Det gör du genom att använda följande grupperingsargument:
Grupperingsargumentet kan vara ett av följande:
I följande exempel visas den här typen av gruppargument:
Total.sum( row["myCol"] null, null ); // Aktuell grupp Total.sum( row["myCol"], null, "Kund" ); // Per namn Total.sum( row["myCol"], null, "row[`custID']" ); // Per gruppnyckel Total.sum( row["myCol"], null, 1 ); // Per gruppindex Total.sum( row["myCol"], null, "Overall" ); // Totaler Total.sum( row["myCol"], null, 0 ); // Totaler
Du måste ange filterargumentet när du använder grupperingsargumentet. Om du inte behöver något filter anger du null som värde för filtret. Gruppindexet står inte inom citattecken. Det måste ha ett tal. Det betyder att 1 är gruppen på nivå 1 medan "1" betyder gruppen med namnet "1".
OVERALL
Den här aggregatfunktionen beräknar det matematiska medelvärdet. Om uttrycket utvärderas till ett tal returnerar den här funktionen medelvärdet av de talen. Om uttrycket utvärderas till ett datum returnerar funktionen medeldatumet.
Total.ave( expr [, filter [, group ]] )
Den här funktionen returnerar medelvärdet av det angivna uttrycket. Om inga rader finns tillgängliga returneras null.
I följande stats returneras medelåldern för eleverna i en klass:
Om du vill att medelfödelsedagen för eleverna i en klass ska returneras använder du följande sats:
Total.median-aggregatet
Total.mode-aggregatet
Total.movingAve-aggregatet
Total.stdDev-aggregatet
Total.variance-aggregatet
Total.weightedAve-aggregatet
Den här funktionen räknar antalet rader inom gruppen.
Total.count( [ filter [, group ]] )
I det här exemplet räknas antalet manliga och kvinnliga elever i en klass. Det är nödvändigt att skapa två dataobjekt. Ange det första till:
Ange det andra till:
Total.countDistinct-aggregatet
Total.sum-aggregatet
Den här funktionen beräknar antalet distinkta värden i gruppen eller datauppsättningen. Argumentet expr ger ett uttrycks som används för gruppering av värdena. Uttrycket hänvisar till en dataradkolumn. Null-värden räknas som ett distinkt värde.
Total.countDistinct ( expr [, filter [, group ]] )
Antalet distinkta värden i gruppen eller datauppsättningen. Noll returneras om det inte fanns några tillgängliga rader.
Antag att vi vill ta reda på antalet olika länder som finns representerade i en grupp med studenter. Vi kan definiera ett dataobjekt som använder följande uttryck:
I den här satsen är row.Country en kolumn som innehåller namnet eller koden för studentens hemland. Om vissa rader innehåller null betyder det att vi inte känner till de studenternas hemland. Använd följande sats om du vill ta bort sådana rader från antalet:
Total.count-aggregatet
Den aggregatfunktionen returnerar det första värdet som visas i datauppsättningen. Det här är det första värde som hämtas från datauppsättningen när rader hämtas med den sorteringsordning som har definierats för tabellen eller listan.
Total.first( expr [, filter [, group ]] )
Den här funktionen returnerar det första värde som visas i sekvensen med rader, eller nu om datauppsättningen inte innehåller några rader.
Antag att en rapport innehåller en lista med transaktioner för en given aktie under en viss tidsperiod. I följande sats visas det tidigaste inköpet i aktien:
Total.isBottomNPercent-aggregatet
Total.max-aggregatet
Total.min-aggregatet
Den här funktionen returnerar ett booleskt värde som visar om värdet av ett visst numeriskt fält är ett av de lägsta n värdena.
Total.isBottomN( expr, n, [, filter [, group ]] )
Den här funktionen returnerar true eller false. Den returnerar true om värdet i det numeriska fältet ligger inom de lägsta n av alla värden i kolumnen.
Anta att en rapportkolumn har fem rader som innehåller värdena 1, 2, 3, 4 och 5. Total.isBottomN(expr, 2) testar om fältet representeras av expr innehåller en 1:a eller en 2:a, de lägsta två numren i kolumnen.
Den här funktionen returnerar ett booleskt värde som visar om värdet i ett visst numeriskt fält är ett av de lägsta n procenten av alla värden i kolumnen.
Total.isBottomNPercent( expr, n, [, filter [, group ]] )
Den här funktionen returnerar true eller false. Den returnerar true om värdet i fältet ligger inom de lägsta n procenten av alla värden i kolumnen.
Anta att en rapportkolumn har fem rader som innehåller värdena 1, 2, 3, 4 och 5. Total.isBottomNPercent(expr, 60) testar om fältet representeras av expr innehåller en 1:a, en 2:a en 3:a, de lägsta 60 procenten av talen i kolumnen.
Den här funktionen returnerar ett booleskt värde som visar om värdet av ett visst numeriskt fält är ett av de högsta n värdena.
Total.isTopN( expr, n, [, filter [, group ]] )
Den här funktionen returnerar true eller false. Den returnerar true om värdet i det numeriska fältet ligger inom de högsta n av alla värden i kolumnen.
Anta att en rapportkolumn har fem rader som innehåller värdena 1, 2, 3, 4 och 5. Total.isTopN(expr, 2) testar om fältet representeras av expr innehåller en 4:a eller en 5:a, de högsta två talen i kolumnen.
Den här funktionen returnerar ett booleskt värde som visar om värdet i ett visst numeriskt fält är ett av de högsta n procenten av alla värden i kolumnen.
Total.isTopNPercent( expr, n, [, filter [, group ]] )
Den här funktionen returnerar true eller false. Den returnerar true om värdet i fältet ligger inom de högsta n procenten av alla värden i kolumnen.
Anta att en rapportkolumn har fem rader som innehåller värdena 1, 2, 3, 4 och 5. Total.isTopNPercent(expr, 60) testar om fältet representeras av expr innehåller en 3:a, en 4:a eller en 5:a, de högsta 60 procenten av talen i kolumnen.
Den här funktionen returnerar det sista värde som visas i en datauppsättning. Det här är det sista värde som hämtas från datauppsättningen när rader hämtas med den sorteringsordning som har definierats för tabellen eller listan.
Total.last( expr [, filter [, group ]] )
Den här funktionen returnerar det sista värde som visas i sekvensen med rader, eller nu om datauppsättningen inte innehåller några rader.
Antag att en rapport innehåller en lista med transaktioner för en given aktie under en viss tidsperiod. I följande sats visas den senaste försäljningen av aktien:
Total.first-aggregatet
Total.max-aggregatet
Total.min-aggregatet
Den här funktionen beräknar det högsta värdet i det angivna uttrycket. Uttrycket valideras för varje rad och det högsta värdet behålls. Den här funktionen kan fungera med number, date eller string.
Total.max( expr [, filter [, group ]] )
Den här funktionen returnerar maxvärdet i det angivna uttrycket. Om inga rader fanns tillgängliga returneras null.
Med följande sats söker du reda på den äldsta eleven i en klass:
Total.first-aggregatet
Total.isBottomNPercent-aggregatet
Total.min-aggregatet
Den här aggregatfunktionen beräknar det matematiska medianvärdet. Hälften av värden ligger ovanför medianen, och hälften ligger nedanför.
Total.median( expr [, filter [, group ]] )
Den här funktionen returnerar medianvärdet i det angivna uttrycket. Om inga rader finns tillgängliga returneras null.
I följande stats returneras medianåldern för eleverna i en klass:
Och om du vill att medianfödelsedagen för eleverna i en klass ska returneras använder du följande sats:
Total.ave-aggregatet
Total.mode-aggregatet
Total.movingAve-aggregatet
Total.stdDev-aggregatet
Total.variance-aggregatet
Total.weightedAve-aggregatet
Den här aggregatfunktionen beräknar minimivärdet i det angivna uttrycket. Uttrycket valideras för varje rad och det lägsta värdet behålls. Den här funktionen kan fungera med alla enkla typer: number, date eller string.
Total.min( expr [, filter [, group ]] )
Den här funktionen returnerar minimivärdet av det angivna uttrycket. Om inga rader finns tillgängliga returneras null.
I följande stats returneras åldern för den yngsta eleven i en klass:
Total.first-aggregatet
Total.isBottomNPercent-aggregatet
Total.max-aggregatet
Den här aggregatfunktionen beräknar det matematiska lägesvärdet. Läget är det värde som oftast inträffar i uppgifterna. I sekvensen {1, 2, 3, 2, 4, 7}, till exempel, är siffran två läget eftersom den förekommer två gånger medan alla de andra siffrorna endast förekommer en gång. Om en datauppsättning har flera lägen, t.ex. i sekvensen {1,2,3,2,3}, returnerar lägesaggregatet null.
Total.mode( expr [, filter [, group ]] )
Den här funktionen returnerar lägesvärdet i det angivna uttrycket. Om inga rader finns tillgängliga eller om det finns mer än ett läge i uppsättningen returneras null.
I följande stats returneras den ålder som är mest frekvent för eleverna i en klass:
Total.ave-aggregatet
Total.median-aggregatet
Total.movingAve-aggregatet
Total.stdDev-aggregatet
Total.variance-aggregatet
Total.weightedAve-aggregatet
Den här aggregatfunktionen beräknar det flytande medelvärdet. Argumentet expr ger värdet för average, och argumentet window argument giver antalet rader som ska tas med. Medelvärdet för raderna beräknas i den ordning som bestäms av kontexten, vanligen i den ordning som har angetts för sortering av något av elementen List eller Table.
Total.movingAve( expr, window [, filter [, group ]] )
Den här funktionen returnerar ett flytande medelvärde i det angivna uttrycket. Om inga rader finns tillgängliga returneras null.
Antag att en rapport innehåller en lista med dagliga priserna för en aktie. Om du vill visa det flytande medelvärdet av den aktien över de sista fem dagarna använder du följande sats:
Total.ave-aggregatet
Total.median-aggregatet
Total.mode-aggregatet
Total.stdDev-aggregatet
Total.variance-aggregatet
Total.weightedAve-aggregatet
Med den här funktionen undersöks en uppsättning värden och det värde returneras som ligger inom en viss angiven percentil av alla värden i uppsättningen. Om du till exempel vill veta vilket resultat representerar den 90:e percentilen av alla resultat på testen.
Den här funktionen returnerar det värde som finns inom den angivna percentilen i uppsättningen med analyserade värden.
Följande sats returnerar den 50:d percentilen av resultatvärdet:
Om uppsättningen med testresultat i den angivna kolumnen är 10, 20, 30, 40 och 50 skulle satsen returnera 30.
Den här funktionen beräknar rangordningen i procent för ett värde i ett angivet fält.
percentRank( expr, filter [, group ]] )
Den här funktionen returnerar rangordningen i procent för värdet i det angivna fältet. Returvärdet ligger mellan noll och ett.
I följande sats returneras rangordningen i procent för ett resultat bland alla resultat i en kolumn:
Om resultaten i utvärderingsområdet är 10, 10, 20 och 50, och resultatet i den cell som innehåller den här satsen är 30, är returvärdet 0,5 eftersom hälften av värdena är ovanför 20 och hälften är under 20.
Den här funktionen beräknar t.
percentSum( expr [, filter [, group ]] )
Den här funktionen returnerar procentsatsen för bidraget av det här värdet till summan av alla värden i området.
I följande sats returneras procentsatsen för det här beställningsvärdets bidrag till summan av alla beställningsvärden:
Den här funktionen beräknar värdet inom en definierad uppsättning av värden där 0%, 25%, 50%, 75% eller 100% av värden i uppsättningen är högre.
quartile( expr, quartile, [, filter [, group ]] )
Den här funktionen returnerar värdet inom den angivna uppsättningen som faller inom den angivna kvartilen.
Följande sats returnerar det beställningsbelopp där 75% av beloppen är lägre och 25% är högre:
Den här funktionen beräknar var ett värde ligger inom en uppsättning värden. Rangordningsvärdet ligger inom intervallet 1 till antalet värden i uppsättningen. Om två värden är identiska har de samma rangordning.
rank( expr [, filter [, group ]] )
Den här funktionen returnerar ett heltal som speglar värderangordningen och har ett område från 1 till antalet objekt i uppsättningen med värden
I följande sats returneras rangordningen av fältet OrderAmt bland alla beställningsbelopp i kolumnen OrderAmt.
Den här funktionen beräknar ett löpande antal rader.
runningCount( filter [, group ]] )
Den här funktionen returnerar det löpande antalet rader.
I följande sats returneras det löpande antalet i en rapport:
Total.count-aggregatet
Total.percentRank-aggregatet
Den här aggregatfunktionen beräknar den statistiska standardavvikelsen för en talserie. Standardavvikelsen är ett mått på spridningen av en uppsättning värden.
Total.stdDev( expr [, filter [, group ]] )
Den här funktionen returnerar standardavvikelsen i det angivna uttrycket. Om inga rader finns tillgängliga returneras null.
Total.ave-aggregatet
Total.median-aggregatet
Total.mode-aggregatet
Total.movingAve-aggregatet
Total.variance-aggregatet
Total.weightedAve-aggregatet
Den här aggregatfunktionen beräknar den summa som är resultatet av att lägga ihop ett värde från varje rad i gruppen. Värdet för varje rad beräknas med hjälp av det uttryck som ges i expr-argumentet. Summan fås genom att lägga ihop alla de värdena.
Total.sum( expr [, filter [, group ]] )
Summan av det angivna uttrycket. Noll returneras om det inte fanns några tillgängliga rader.
I följande sats läggs alla beställningsbelopp för en kund ihop:
Total.count-aggregatet
Total.percentRank-aggregatet
Den här aggregatfunktionen beräknar den statistiska variansen för en talserien. Standardvariansen är ett mått på spridningen av en uppsättning värden.
Total.variance( expr [, filter [, group ]] )
Den här funktionen returnerar variansen av det angivna uttrycket. Om inga rader finns tillgängliga returneras null.
Total.ave-aggregatet
Total.median-aggregatet
Total.mode-aggregatet
Total.movingAve-aggregatet
Total.stdDev-aggregatet
Total.weightedAve-aggregatet
Den här aggregatfunktionen beräknar det matematiskt beräknade viktade medelvärdet. Om något av argumenten expr eller weight utvärderas till null tas den raden bort från medelvärdet.
Total.weightedAve( expr, weight [, filter [, group ]] )
Den här funktionen returnerar det viktade medelvärdet av det angivna uttrycket. Om inga rader finns tillgängliga returneras null.
Antag att en ekonomitillämpning spårar uppsättningar av en viss aktie som har köpts vid olika tillfällen. Varje uppsättning har olika inköpspris och ett antal aktier som köptes till det priset. I följande sats beräknas det viktade medelinköpspriset:
Total.ave-aggregatet
Total.median-aggregatet
Total.mode-aggregatet
Total.movingAve-aggregatet
Total.stdDev-aggregatet
Total.variance-aggregatet
![]() ![]() |