PANTHEON™ Help

 Sadržaj
[Collapse]Poštanska knjiga
  Pošiljke
 Glavna strana- Dobrodošli u PANTHEON uputstva
[Collapse]PANTHEON
 [Collapse]PANTHEON priručnici
  [Collapse]Priručnik za PANTHEON
   [Collapse]Podešavanja
    [Expand]Subjekti
    [Expand]Identi
    [Expand]POS
    [Expand]Proizvodnja
    [Expand]Zaposleni
     Kalendar
    [Expand]Računovodstvo
    [Expand]Carina
    [Collapse]Program
     [Expand]Vrste dokumenata
     [Collapse]Oblici ispisa
       Podešavanja u Administratorskoj konzoli
      [Expand]Šifarnik ispisa
       Pregled štampe
      [Expand]Štampanje - dizajn
      [Expand]Pravljenje izveštaja
      [Expand]Grupe i Agregati
      [Expand]Formatiranje i Isticanje
       Ugnježdene izveštaje (podizveštaji)
      [Expand]Specifičnosti ispisa
      [Collapse]Skripta
        "Zdravo, Svete!" Skripta
        Korišćenje promenljivih, polja baze podataka i agregatnih funkcija
        Primeri upotrebe objekata u skriptama
        Dejstva
        Primer korišćenja "OnBeforePrint" događaja
        Štampanje zbirne sume u zaglavlju grupe
        Trenutni Ukupni Iznos
        "OnAfterData" Događaj
        Servisni objekti
       [Expand]Funkcije
        Korišćenje "Engine" objekta
       [Expand]Tabele i upiti na ispisima
       Primer opšteg podešavanja u AK
      [Expand]Upotreba izraza SQLEXP u ispisima
      [Expand]Obaveštenja prilikom oblikovanja ispisa
      [Expand]Oblikovanje ispisa
      Šifarnik tekstova
      Načini dostave
     [Expand]Ispisi u PANTHEON-u
     [Expand]Kartice poverenja
     [Expand]Administratorska konzola
     [Expand]Elementi kontrolne table
      Izveštaji na kontrolnoj tabli
      Ad-hoc analiza
     [Expand]ARES
      SQL editor
     [Expand]Ad-hoc analize
      Klasifikacijski plan
    [Expand]Dokumentacija
    [Expand]Trenutni korisnik Ctrl - U
   [Expand]Narudžbine
   [Expand]Roba
   [Expand]Proizvodnja
   [Expand]POS
   [Expand]Servis
   [Expand]Novac
   [Expand]Kadrovi
   [Expand]Plansko-analitički alat ZEUS
   [Expand]Radna površina
   [Expand]Pomoć
   [Expand]Obaveštenja programa
   [Expand]Poslovni saveti
   [Expand]Dodatni programi
    Sistemska okolina
  [Expand]Priručnik za mobilni POS
  [Expand]Priručnik za PANTHEON Vet
  [Expand]Vodič po DataLab PANTHEON™ Farming
 [Collapse]PANTHEON korisnički priručnici
  [Expand]Operativni priručnik za datalab PANTHEON Farming
  [Expand]Korisnički priručnik za PANTHEON
  [Expand]Korisnički vodič za mobilni POS
  [Expand]Korisnički priručnik za PANTHEON VET
  [Expand]Korisnički priručnik za PANTHEON Farming
[Collapse]PANTHEON Web
 [Collapse]Priručnici za PANTHEON Web
  [Expand]Priručnik za PANTHEON Web Light
  [Expand]Priručnik za PANTHEON Web Terminal
  [Expand]Priručnik za PANTHEON Web Legal
 [Collapse]Korisnički priručnici za PANTHEON Web
  [Expand]Kako početi? PANTHEON Web
  [Expand]Korisnički priručnik za PANTHEON Web Light
  [Expand]Korisnički priručnik za PANTHEON Web Terminal
  [Expand]Korisnički priručnik za PANTHEON Web Legal
[Collapse]PANTHEON Granule
 [Collapse]Priručnik za PANTHEON Granule
  [Expand]Granula Kadrovi
  [Expand]Granula Putni nalozi
  [Expand]Granula Dokumenti i zadaci
  [Expand]Granula Kontrolna tabla
  [Expand]Granula B2B naručivanje
  [Expand]Granula Servis na terenu
  [Expand]Granula Inventar osnovnih sredstava
  [Expand]Granula Inventar skladišta
 [Collapse]Korisnički priručnik za PANTHEON Granule
  [Expand]Kako početi?
  [Expand]Granula Kadrovi
  [Expand]Granula Putni nalozi
  [Expand]Granula Dokumenti i Zadaci
  [Expand]Granula B2B Naručivanje
  [Expand]Granula Kontrolna tabla
  [Expand]Granula Servis na terenu
  [Expand]Inventar Fiksne Imovine
  [Expand]Arhiva
  [Expand]Granula Inventar skladišta
 Obrazac za slanje fax-om
[Expand]Korisničke strane

Load Time: 859.3913 ms
"
  1006307 | 218666 | 434806 | AI translated
Label

Štampanje zbirne vrednosti u zaglavlju grupe

Štampanje zbirne vrednosti u zaglavlju grupe

Ova metoda se često koristi i zahteva korišćenje skripta jer je vrednost zbirne vrednosti poznata tek nakon što su svi zapisi u grupi obrađeni. Da bismo prikazali zbir u zaglavlju grupe (tj. pre nego što se grupa prikaže u izveštaju) koristi se sledeći algoritam:

- uključite opciju izveštaja sa dva prolaza (“Izveštaj > Opcije...” stavka u meniju)

- u prvom prolazu, izračunajte sume za svaku grupu i sačuvajte ih u nizu

- u drugom prolazu, izdvojite vrednosti iz niza i prikažite ih u zaglavljima grupa

 Prikažimo dve metode za izvršavanje ovog zadatka. Prvo kreirajte klon izveštaja '147 - Stanje zaliha na datum po skladištima i stavkama'​ koji se može naći u meniju programa 'Robna | Izveštaji o zalihama | Trenutne zalihe'.

Omogućite dvostruki prolaz u podešavanjima izveštaja (“Izveštaj > Opcije...” stavka u meniju). U editoru benda “GroupHeader”, unesite tbIzpisTrenZaloga."acWarehouse" polje podataka. Povežite podatkovni bend sa izvorom podataka “Grupa” i zatim rasporedite neke objekte na sledeći način:

Da bismo prikazali zbir koristimo obojene objekte u dizajnu. Nazvali smo ih "Sum1" i "Sum2".

U objektu nazvanom "Sum1" biće prikazan rezultat prve metode, a uobjektu nazvanom "Sum2" biće prikazan rezultat druge metode.

Prva metoda.

Koristićemo klasu "TStringList" kao niz za čuvanje suma - čuvaćemo numeričke vrednosti kao stringove. Prva stavka u StringList-u će odgovarati sumi prve grupe, i tako dalje. Celobrojna promenljiva (koju ćemo inkrementirati nakon štampanja svake grupe) koristi se za izračunavanje indeksa grupe.

Naš skript će izgledati ovako:

var

   List: TStringList;

   i: Integer;

procedure OnStartReport(Sender: TfrxComponent);

begin

  List := TStringList.Create;

end;

procedure OnStopReport(Sender: TfrxComponent);

begin

  List.Free;

end;

procedure Page1OnBeforePrint(Sender: TfrxComponent);

begin

  i := 0;

end;

procedure  hSkladOnBeforePrint(Sender: TfrxComponent);

begin

  if Engine.FinalPass then

    Sum1.Text := 'Zbir: ' + List[i];

end;

procedure fSkladOnBeforePrint(Sender: TfrxComponent);

begin

  if not Engine.FinalPass then

    List.Add(FormatFloat('#,##0.00',SUM(<tbIzpisTrenZaloga."ZALVREDNOST">, Detail)));

  Inc(i);

end;

begin

 

end.

Imena procedura u skriptu pokazuju koje događaje smo koristili. Oni su: “Izveštaj.OnStartReport”, “Izveštaj.OnStopReport”, "Page1.OnBeforePrint", "hSkladHeader1.OnBeforePrint" i "fSklad.OnBeforePrint". Prva dva događaja se pozivaju na početku i na kraju izveštaja. Da biste kreirali rukovaoce za ova dva događaja, izaberite objekat “Izveštaj” u padajućem meniju inspektora objekata i njegovi svojstva će se pojaviti u inspektoru objekata. Zatim pređite na karticu “Događaji” inspektora objekata i kreirajte rukovaoce.

Zašto nismo kreirali promenljivu “List” u glavnoj proceduri skripta? Kreirali smo je u događaju "OnStartReport" jer se dinamički kreirane promenljive treba uništiti nakon što je izveštaj završen. Logično je kreirati dinamičke promenljive u događaju “OnStartReport” i uništiti ih u događaju “OnStopReport”. U drugim slučajevima (kada ne treba osloboditi memoriju po završetku skripta) može se koristiti glavna procedura skripta za inicijalizaciju promenljivih.

Kreiranje i uništavanje promenljive “List” je jednostavno. Sada hajde da vidimo kako skript funkcioniše. Na početku stranice, brojač za trenutnu grupu (promenljiva “i”) se resetuje na nulu i inkrementira se nakon što je svaka grupa štampana (u događaju “GroupFooter1.OnBeforePrint”). Izračunati zbir se dodaje u “List” u ovom događaju pre nego što se brojač inkrementira. Događaj “GroupHeader1.OnBeforePrint” ne radi ništa tokom prvog prolaza (ako je uslov “Engine.FinalPass”) ali tokom drugog prolaza (kada je “List” popunjen vrednostima) zbir koji odgovara trenutnoj grupi se preuzima iz “List” i prikazuje se u objektu "Sum1" da bi se prikazao zbir u zaglavlju grupe. U završenom izveštaju, pojavljuje se na sledeći način:

Ovaj algoritam je prilično jednostavan. Međutim, može se pojednostaviti.

Druga metoda.

Koristićemo kolekciju izveštajnih promenljivih kao niz za čuvanje zbirnih vrednosti grupa. Zapamtite da se izveštajne promenljive pristupaju putem funkcija “Get” i “Set”. Korišćenje ovih funkcija nas takođe štedi od potrebe da eksplicitno kreiramo i uništavamo ove promenljive. Naš skript će izgledati ovako:

procedure  hSkladOnBeforePrint(Sender: TfrxComponent);

begin

  if Engine.FinalPass then

    Sum2.Text := 'Zbir: ' + FormatFloat('#,##0.00', Get(<tbIzpisTrenZaloga."acWarehouse">));

end;

procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);

begin

  Set(<tbIzpisTrenZaloga."acWarehouse">, SUM(<tbIzpisTrenZaloga."ZALVREDNOST">, Detail));

end;

begin

 

end.

Kao što možete videti, ovaj skript je donekle jednostavniji. Kod u rukovaocu “fSklad.OnBeforePrint” postavlja vrednost promenljive koja ima ime izvedeno iz broja klijenta (ili se može koristiti bilo koji drugi identifikator koji jednoznačno identifikuje klijenta, na primer <tbIzpisTrenZaloga."acWarehouse">). Ako ne postoji promenljiva sa tim imenom, skript je automatski kreira; inače, ako već postoji, njena vrednost se ažurira. U rukovaocu “hSklad.OnBeforePrint” se preuzima vrednost odgovarajuće promenljive.

Završeni izveštaj se pojavljuje na sledeći način:

Druga metoda ne funkcioniše za višestruko grupisanje i za prikazivanje više suma polja u zaglavlju grupe.

Primer nekoliko suma polja u zaglavlju grupe je u izveštaju '32A - Kašnjenja u plaćanju - Po povezanim dokumentima' koji se nalazi u meniju programa 'Finansije | Izveštaji | Kašnjenja u plaćanju'.

 

Oceni ovu temu
Da li je ova tema korisna?
Komentari
Komentari će biti vidljivi i na forumu!