PANTHEON™ navodila

 Kazalo
 Glavna stran - Dobrodošli v PANTHEON navodila
[Collapse]PANTHEON
 [Collapse]Vodiči za PANTHEON
  [Collapse]Vodič po PANTHEON-u
   [Expand]Pomoč
   [Collapse]Nastavitve
    [Expand]Subjekti
    [Expand]Identi
    [Expand]POS
    [Expand]Proizvodnja
    [Expand]Zaposleni
     Koledar
    [Expand]Računovodstvo
    [Expand]Carina
    [Expand]Dokumentacija
    [Collapse]Program
     [Expand]Vrste dokumentov
     [Collapse]Izpisi v PANTHEON-u
       Delovno okolje
       Izvozi ime datoteke
       Poročila Register
       Posebnosti izpisov
       Nastavitve
       Predogled tiskanja
       Zgradba izpisa
       Objekti
      [Expand]Oblikovalec poročil
       Izrazi
      [Expand]Ustvarjanje poročil
      [Expand]Skupine in agregati
       Grupiranje in številčenje
      [Expand]Funkcije
      [Expand]Oblikovanje in označevanje
       Sistemske spremenljivke
       Vgrajena poročila (podporočila)
       Uvoz in izvoz
      [Collapse]Skripta
        "Pozdravljen, svet!"
        Uporaba spremenljivk, polj podatkovne baze in agregatnih funkcij
        Dogodki
        Primer uporabe dogodka "OnBeforePrint"
        Izpis skupne vsote v skupinskem glavi
        Skupaj
        "OnAfterData" Dogodek
        Storitveni objekti
        Uporaba objekta "Motor"
       Tabele in poizvedbe
       Prenos izpisa v druge baze
       Izvoz oblike izpisa
       Uvoz oblike izpisa
       Bližnjica na izpis
       Podvajanje izpisov in spreminjanje tipa izpisa
      [Expand]Uporaba izraza SQLEXP v izpisih
      [Expand]Sporočila pri oblikovanju izpisov
      [Expand]Oblikovanje izpisov
     [Expand]Teksti za dokumente
      Načini dostave
     [Expand]Kartice zaupanja
     [Expand]Administratorska konzola
     [Expand]Gradniki nadzorne plošče
      Poročila nadzorne plošče
      Poročila nadzorne plošče
      Ad-hoc analize
     [Expand]ARES
      SQL urejevalnik
    [Expand]Zamenjaj uporabnika Ctrl - U
   [Expand]Naročila
   [Expand]Proizvodnja
   [Expand]Blago
   [Expand]Servis
   [Expand]Denar
   [Expand]Kadri
   [Expand]Namizje
   [Expand]Analitika
   [Expand]Sporočila programa
   [Expand]Uradna pojasnila
   [Expand]Sistemsko okolje
   [Expand]Dodatni programi
    Slovar izrazov
   [Expand]Zastareli produkti
  [Expand]Vodič po PANTHEON Farming
  [Expand]Vodič po PANTHEON Retail
  [Expand]Vodič po PANTHEON Vet
 [Collapse]Uporabniški priročniki za PANTHEON
  [Expand]Uporabniški priročnik za PANTHEON
  [Expand]Uporabniški priročnik za PANTHEON Retail
  [Expand]Uporabniški priročnik za PANTHEON Vet
[Collapse]PANTHEON Web
 [Collapse]Vodiči za PANTHEON Web
  [Expand]Vodič po PANTHEON Web Light
  [Expand]Vodič za PANTHEON Web Terminal
  [Expand]Vodič za PANTHEON Web Legal
  [Expand]Arhiv starih izdelkov
 [Collapse]Uporabniški priročniki za PANTHEON Web
  [Expand]Kako začeti
  [Expand]Uporabniški priročnik za PANTHEON Web Light
   Uporabniški priročnik za PANTHEON Web Terminal
  [Expand]Arhiv starih izdelkov
  [Expand]Uporabniški priročnik za PANTHEON Web Legal
[Collapse]PANTHEON Granule
 [Collapse]Vodiči za PANTHEON Granule
  [Expand]Granula Kadri
  [Expand]Granula Potni nalogi
  [Expand]Granula Dokumenti in Opravila
  [Expand]Granula Nadzorna plošča
  [Expand]Granula B2B Naročanje
  [Expand]Granula Servis na terenu
  [Expand]Inventar fiksnih sredstev
  [Expand]Granula Inventura skladišča
 [Collapse]Uporabniški priročniki za PANTHEON Granule
   Začetek
   Primer uporabe PANTHEON Granul v namišljenem podjetju
  [Expand]PANTHEON Granule in aktivacija
  [Expand]Granula Kadri
  [Expand]Granula Potni nalogi
  [Expand]Granula Dokumenti in opravila
  [Expand]Granula B2B naročanje
  [Expand]Granula Nadzorna plošča
  [Expand]Granula Servis na terenu
  [Expand]Granula Inventura osnovnih sredstev
  [Expand]Granula Inventura skladišča
   PANTHEON Granule - pogosta vprašanja in odgovori
   Arhiv
[Expand]Uporabniške strani

Load Time: 859,3837 ms
"
  1006307 | 218666 | 422841 | AI translated
Label

Izpis skupne vsote v skupinskem naslovu

Izpis skupne vsote v skupinskem naslovu

Ta metoda se pogosto uporablja in zahteva uporabo skripta, ker je vrednost skupne vsote znana šele po obdelavi vseh zapisov v skupini. Za prikaz vsote v skupinskem naslovu (tj. pred izhodom skupine v poročilo) se uporablja naslednji algoritem:

- vklopite možnost poročila z dvema prehodoma (izbira menija "Poročilo > Možnosti...")

- v prvem prehodu izračunajte vsote za vsako skupino in jih shranite v tabelo

- v drugem prehodu izvlecite vrednosti iz tabele in jih prikažite v skupinskih naslovih

 Prikažimo dve metodi za izvedbo te naloge. Najprej ustvarite klon poročila '147 - Stanje zaloge na datum po skladiščih in artiklih'​, ki ga najdete v meniju programa 'Blago | Poročila o zalogah | Trenutna zaloga'.

Omogočite dvojni prehod v nastavitvah poročila (izbira menija "Poročilo > Možnosti..."). V urejevalniku banda "GroupHeader" vnesite tbIzpisTrenZaloga.'acWarehouse' podatkovno polje. Povežite podatkovni band z virom podatkov "Group" in nato razporedite nekatere objekte na naslednji način:

Za prikaz vsote uporabljamo obarvane objekte v oblikovanju. Poimenovali smo jih "Sum1" in "Sum2".

V objektu z imenom "Sum1" bo prikazan rezultat prve metode, vobjektu z imenom "Sum2" pa bo prikazan rezultat druge metode.

Prva metoda.

Uporabili bomo razred "TStringList" kot tabelo za shranjevanje vsot - shranjevali bomo numerične vrednosti kot nize. Prvi element v StringList bo ustrezal vsoti prve skupine, in tako naprej. Uporablja se celoštevilska spremenljivka (ki jo bomo povečali po izpisu vsake skupine) za izračun indeksa skupine.

Torej bo naš skript videti takole:

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 := 'Vsota: ' + 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 postopkov v skriptu kažejo, katere dogodke smo uporabili. Ti so: “Report.OnStartReport”, “Report.OnStopReport”, "Page1.OnBeforePrint", "hSkladHeader1.OnBeforePrint" in "fSklad.OnBeforePrint". Prva dva dogodka se pokličejo na začetku in na koncu poročila. Da ustvarite obdelovalce za ta dva dogodka, izberite objekt “Report” v spustnem seznamu in njegove lastnosti se bodo prikazale v inšpektorju objektov. Nato preklopite na zavihek “Dogodki” in ustvarite obdelovalce.

Zakaj nismo ustvarili spremenljivke “List” v glavni proceduri skripta? Ustvarili smo jo v dogodku "OnStartReport", ker bi morale biti dinamično ustvarjene spremenljivke uničene po končanem poročilu. Logično je ustvariti dinamične spremenljivke v dogodku “OnStartReport” in jih uničiti v dogodku “OnStopReport”. V drugih primerih (ko ni potrebno sprostiti pomnilnika ob zaključku skripta) lahko uporabite glavno proceduro skripta za inicializacijo spremenljivk.

Ustvarjanje in uničenje spremenljivke “List” je preprosto. Zdaj poglejmo, kako skript deluje. Na začetku strani se števec za trenutno skupino (spremenljivka “i”) ponastavi na nič in se povečuje po izpisu vsake skupine (v dogodku “GroupFooter1.OnBeforePrint”). Izračunana vsota se doda v “List” v tem dogodku, preden se števec poveča. Dogodek “GroupHeader1.OnBeforePrint” ne naredi ničesar med prvim prehodom (če je pogoj “Engine.FinalPass”), vendar med drugim prehodom (ko je “List” napolnjen z vrednostmi) se vsota, ki ustreza trenutni skupini, pridobi iz “List” in se izpiše v objektu "Sum1", da prikaže vsoto v skupinskem naslovu. V končanem poročilu se prikaže takole:

Ta algoritem je precej preprost. Vendar ga je mogoče poenostaviti.

Druga metoda.

Uporabili bomo zbirko poročilnih spremenljivk kot tabelo za shranjevanje skupnih vsot. Ne pozabite, da se do poročilnih spremenljivk dostopa preko funkcij “Get” in “Set”. Uporaba teh funkcij nas tudi reši potrebe po izrecnem ustvarjanju in uničevanju teh spremenljivk. Naš skript bo videti takole:

procedure  hSkladOnBeforePrint(Sender: TfrxComponent);

begin

  if Engine.FinalPass then

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

end;

procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);

begin

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

end;

begin

 

end.

Kot vidite, je ta skript nekoliko preprostejši. Koda v obdelovalcu “fSklad.OnBeforePrint” nastavi vrednost spremenljivke, katere ime izhaja iz številke stranke (ali pa se lahko uporabi katerikoli drug identifikator, ki nedvoumno identificira stranko, na primer <tbIzpisTrenZaloga."acWarehouse">). Če spremenljivka s tem imenom že ne obstaja, jo skript samodejno ustvari; sicer, če že obstaja, se njena vrednost posodobi. V dogodku “hSklad.OnBeforePrint” se pridobi vrednost ustrezne spremenljivke.

Končano poročilo se prikaže takole:

Druga metoda ne deluje za večkratno grupiranje in za prikaz več skupnih vsot polj v skupinskem naslovu.

Primer več skupnih vsot polj v naslovu skupine je v poročilu '32A - Pozna plačila - Po povezanih dokumentih', ki je v meniju programa 'Finančni | Poročila | Pozna plačila'.

 

Ali so bila ta navodila uporabna?
Vaše povratne informacije bodo prispevale k boljši pomoči.
Komentarji
Komentarji so izpostavljeni tudi na forumu.