Navodila za PANTHEON

 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
 [Expand]Uporabniški priročniki za PANTHEON
[Expand]PANTHEON Web
[Expand]PANTHEON Granule
[Expand]Uporabniške strani

Load Time: 765,6277 ms
print   |
Label

Uporaba objekta "Engine"

Uporaba objekta "Engine"

Že smo povedali, da objekt "Engine" predstavlja motor poročila, ki upravlja sestavo poročila. Postopek razporejanja pasov na strani lahko upravljamo z uporabo lastnosti in metod motorja. Najprej nekaj teorije.

Diagram spodaj prikazuje različne dimenzije strani poročila.

_img242

Fizične dimenzije strani so lastnosti "PaperWidth" in "PaperHeight", vidne v inšpektorju objektov, ko je stran izbrana. Tako je velikost A4 strani 210 x 297mm.

"PageWidth" in "PageHeight" sta dimenziji tiskljivega območja, ki je običajno manjše od fizičnih dimenzij strani. Velikost tiskljivega območja je odvisna od lastnosti strani poročila "LeftMargin", "TopMargin", "RightMargin" in "BottomMargin". Velikost tiskljivega območja v slikovnih pikah vrne funkciji "Engine.PageWidth" in "Engine.PageHeight".

Na koncu je "FreeSpace" višina prostega prostora na strani. Če je na strani pas "Page Footer", se njegova višina upošteva pri izračunu "FreeSpace". Ta višina se vrne v slikovnih pikah z funkcijo "Engine.FreeSpace". Upoštevajte, da se po prikazu naslednjega pasu prosti prostor zmanjša na strani, to se upošteva pri izračunu "FreeSpace".

Kako so sestavljene strani poročila? Jedro FastReport prikazuje pasove na strani, dokler je dovolj prostega prostora. Ko prostega prostora ni več, se natisne pas "Page Footer" (če je potrebno) in ustvari se nova prazna stran. Kot že omenjeno, se po prikazu naslednjega pasu višina prostega prostora zmanjša. Poleg tega se prikaz naslednjega pasu začne od trenutne pozicije, ki jo določajo koordinate na osi X in osi Y. Trenutna pozicija se vrne z "Engine.CurX" in "Engine.CurY". Po tisku naslednjega pasu se CurY samodejno poveča za višino natisnjenega pasu. Po ustvarjanju nove strani "CurY" enako "0." "CurX" se spremeni pri tisku večkolumnskih poročil.

"Engine.CurX" in "Engine.CurY" sta na voljo ne le za branje, temveč tudi za pisanje. To pomeni, da je mogoče pasove premikati z povečevanjem ali zmanjševanjem teh vrednosti. Na primer, v poročilu, ki je podobno temu:

_img243

To se lahko natisne na naslednji način:

_img244

To dosežemo z zapisovanjem obdelovalca za dogodek pasu "OnBeforePrint":

postopek MasterData1OnBeforePrint(Sender: TfrxComponent);

začni

  Engine.CurX := Engine.CurX + 5;

konec;

Sprememba "CurY" lahko povzroči prekrivanje pasov, na primer:

_img245

Doseženo s tem skriptom:

postopek MasterData1OnBeforePrint(Sender: TfrxComponent);

začni

  Engine.CurY := Engine.CurY - 15;

konec;

Metoda "Engine.NewPage" vstavi prelom strani na katerem koli zahtevanem mestu v poročilu, po katerem se tiskanje nadaljuje od vrha nove izhodne strani. V našem primeru se lahko prelom vstavi po tisku drugega zapisa:

postopek MasterData1OnAfterPrint(Sender: TfrxComponent);

začni

   če <Line> = 2 potem

     Engine.NewPage;

konec;

Upoštevajte, da smo uporabili dogodek "OnAfterPrint" (to pomeni, po tem, ko je bil pas natisnjen). Prav tako upoštevajte, da sistemska spremenljivka "Line" vrne zaporedno številko zapisa.

Metoda "Engine.NewColumn" vstavi prelom stolpca v večkolumnskih poročilih. Če na strani ni več prostih stolpcev, se ustvari nova stran.

Račun z plačilnimi nalogi


Naslednji primer je predstavljen na izpisu nalogov in računov s plačilnimi nalogi. Na voljo so le za slovensko in hrvaško zakonodajo. Takšna poročila so '2U2 - Račun - UPN - Oblika' za slovensko in '2U7 - Račun - HUB 3A - Oblika' za hrvaško zakonodajo. Oblikovanje teh poročil lahko vidite, če odprete oblikovalnik poročil iz registra poročil.

Želimo natisniti plačilni nalog vedno natančno na dnu strani. Da bi to obnašanje prisilili, nastavimo trenutno vertikalno pozicijo (Engine.CurY) povzetka poročila tako, da je dovolj prostora za prikaz na tej strani. To storimo z naslednjo kodo:

postopek UPNOnBeforePrint(Sender: TfrxComponent);
začni
  ...
  Engine.CurY := Engine.CurY + Engine.FreeSpace - UPN.Height - 1;
konec; 

Ko ustvarjamo poročilo, se plačilni nalog prekriva z obstoječim besedilom, če je previsok. Zato moramo popraviti našo kodo, da v tem primeru natisnemo plačilni nalog na naslednji strani.

postopek UPNOnBeforePrint(Sender: TfrxComponent);
začni
  ...
  če Engine.CurY > Engine.CurY + Engine.FreeSpace - UPN.Height - 1 potem
    Engine.NewPage;  
  Engine.CurY := Engine.CurY + Engine.FreeSpace - UPN.Height - 1;
konec; 



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