Funksionet Agregate
Funksionet Agregate
Në shumicën e rasteve, raportet e grupeve duhet të shfaqin disa informacione përmbledhëse (si: “totali i një grupi”, “numri i elementeve të grupit” etj). FastReport ofron funksione agregate për llogaritjen e vlerave agregate mbi një span të caktuar të të dhënave.
Funksionet agregate janë:
Funksioni |
përshkrimi |
SUM |
kthen totalin e një shprehjeje |
MIN |
kthen vlerën minimale të një shprehjeje |
MAX |
kthen vlerën maksimale të një shprehjeje |
AVG |
kthen vlerën mesatare të një shprehjeje |
COUNT |
kthen numrin e linjave (rreshtave) në spanin e të dhënave |
Sintaksa e të gjitha funksioneve agregate (përveç COUNT) është e ngjashme me atë të funksionit SUM:
SUM(shprehja, banda, flamujt)
SUM(shprehja, banda)
SUM(shprehja)
Parametrat janë:
shprehja – shprehja që do të llogaritet
banda – emri i bandës së të dhënave brenda së cilës kryhet llogaritja
flamujt – një fushë bit, me vlera
1 : përfshij bandat e padukshme në llogaritje
2 : akumulo vlerën agregate si një total në vazhdim
(mos e rivendos vlerën agregate kur spanin aktual të të dhënave rivendoset)
3 : (të dy opsionet e mëparshme)
Një shprehje është parametri i vetëm i detyrueshëm, dy të tjerët janë opsionalë. Megjithatë, për të shmangur gabimet, rekomandohet që parametrat e bandës të jepen gjithmonë.
Funksioni agregat “COUNT” ka sintaksën e mëposhtme:
COUNT(banda, flamujt)
COUNT(banda)
ku parametrat kanë të njëjtin kuptim si më sipër.
Ka një rregull të përgjithshëm për të gjitha funksionet agregate: një agregat mund të llogaritet vetëm mbi një bandë të dhënash dhe mund të përdoret vetëm në fundin e asaj bande, e cila mund të jetë një nga: fundi, fundi i faqes, fundi i grupit, fundi i kolonës ose fundi i raportit (banda përmbledhëse).
Si funksionojnë funksionet agregate? Ne do ta shohim këtë duke përdorur shembullin tonë të raportit të grupit. Le të shtojmë disa elemente të reja në raport:

Fusha e Grupit.“ItemsTotal” në bandën e të dhënave shfaq totalin aktual të porosisë. Vendosni një objekt “Tekst” në fundin e grupit që përmban agregatin SUM të treguar më sipër. Ai do të shfaqë totalin e të gjitha porosive të vendosura nga klienti i dhënë. Duke përdorur një kalkulator, ne mund të kontrollojmë që rezultati është i saktë:

Funksionet agregate funksionojnë kështu: para se të nxjerrin një raport, FastReport skanon përmbajtjen e objektit “Tekst” për të gjetur çdo funksion agregate. Agregatet e gjetura lidhen me bandat e të dhënave në parametrat e tyre (në shembullin tonë “SUM” është lidhur me bandën “MasterData1”). Gjatë nxjerrjes së raportit (kur banda e të dhënave shfaqet) llogariten vlerat e agregateve të lidhura me të. Në rastin tonë, vlerat e fushës Grupit.“ItemsTotal” akumulohen. Pasi të jetë nxjerrë fundi i grupit që shfaq agregatin, vlera agregate rivendoset në zero, dhe cikli përsëritet për grupin tjetër, e kështu me radhë.
Çfarë është qëllimi i parametrave opsionalë “Flamuj” në funksionet agregate? Raportet mund të kenë disa, ose të gjitha, nga bandat e të dhënave të fshehura. Megjithatë, ne mund të kemi nevojë të llogarisim agregate mbi të gjitha bandat e të dhënave, qofshin ato të dukshme apo jo. Në shembullin tonë, vendosni pronën “E Dukshme” të bandës së të dhënave në false, duke parandaluar kështu shfaqjen e saj. Për të pasur ende këtë bandë të fshehur të të dhënave të përfshirë në llogaritje, ne duhet të vendosim parametrin e tretë, opsional në thirrjen e funksionit në figurën 1, dmth:
[SUM(<Group."ItemsTotal">,MasterData1,1)]
Kjo prodhon një raport që duket si ky:

Kur vlera e parametrave “Flamuj” është vendosur në 2, vlera agregate nuk rivendoset menjëherë pas shfaqjes së saj: agregati bëhet një llogaritje “në vazhdim” për çdo nxjerrje të radhës. Le të modifikojmë thirrjen e funksionit siç tregohet këtu:
[SUM(<Group."ItemsTotal">,MasterData1,3)]
Vlera “3” është një kombinim bit i “1” dhe “2”, që do të thotë se ne duhet të përfshijmë bandat e padukshme, pa e rivendosur totalin pas çdo grupi. Si rezultat, ne kemi:

Nëse ka një kusht për dukshmërinë në ngjarjen "OnBeforePrint" të një bande, flamujt nuk kanë efekt.