Pogledaj uputstva za PANTHEON™

 Categories
 Početna stranica - PANTHEON uputstva
[Collapse]PANTHEON
 [Collapse]PANTHEON priručnici
  [Expand]Vodič po Datalab PANTHEON FarmAccounting
  [Expand]Vodič po PANTHEON Retail
  [Collapse]Vodič po DataLab PANTHEON™
   [Expand]Pomoć
   [Collapse]Postavke
    [Expand]Subjekti
    [Expand]Artikli
    [Expand]POS
    [Expand]Proizvodnja
     Kalendar
    [Expand]Zaposleni
    [Expand]Računovodstvo
    [Expand]Carina
    [Collapse]Program
     [Expand]Vrste dokumenata
     [Collapse]Ispisi u PANTHEON-u
       Prenos ispisa u druge baze
       Prenos ispisa u druge baze
       Postavke u Administrativnom Panelu
       Izvoz oblika ispisa
       Uvoz oblika ispisa
       SQLI i ispisi $
       Prečica za ispis
      [Expand]Izvještaji Registar
       Pregled štampe
       Dupliciranje ispisa i mijenjanje tipa ispisa
      [Expand]Upotreba izraza SQLEXP u ispisima $
      [Expand]Izvještajni dizajner
      [Expand]Poruke pri oblikovanju ispisa
      [Expand]Izrada Izvještaja
      [Expand]Grupacije i Agregati
      [Expand]Oblikovanje ispisa $
      [Expand]Formatiranje i Isticanje
       Ugniježdene Izvještaje (Podizvještaji)
       Specifičnosti ispisa u PANTHEON-u
      [Collapse]Scenario
        "Zdravo, Svijete!" Skripta
        Korištenje varijabli, polja baze podataka i agregatnih funkcija
        Dešavanja
        Primjer korištenja "OnBeforePrint" događaja
        Štampanje grupnog zbira u grupnom zaglavlju
        Trenutni Ukupni Iznos
        "OnAfterData" Događaj
        Servisni objekti
        Korištenje "Engine" objekta
       [Expand]PANTHEON Funkcije za FastReport
        Primjeri sa Tabelama i Upitima
     [Expand]Tekstovi za dokumente
      Načini dostave
     [Expand]Kartice povjerenja
     [Expand]Elementi nadzorne ploče
     [Expand]Administratorska konzola
      Izvještaji na kontrolnoj tabli
     [Expand]Izvještaji nadzorne ploče
      Ad-hoc analiza
     [Expand]Ares
     [Expand]Trenutni Korisnik Ctrl - U
      SQL uređivač
     [Expand]Ad-hoc analize
    [Expand]Dokumentacija
    [Expand]Dokumentacija
    [Expand]Zamjena korisnika
   [Expand]Narudžbe
   [Expand]Roba
   [Expand]Proizvodnja
   [Expand]POS
   [Expand]POS
   [Expand]Servis
   [Expand]Novac
   [Expand]Kadrovi
   [Expand]Radna površina
   [Expand]Analize
   [Expand]Programske poruke
   [Expand]Dodatni programi
   [Expand]Stari proizvodi
   [Expand]Službena objašnjenja
   [Expand]Dodatni programi
   [Expand]Riječnik izraza
  [Expand]Vodič po PANTHEON VET
 [Expand]PANTHEON korisnički priručnici
[Expand]PANTHEON Web
[Expand]PANTHEON Granule
[Expand]Korisničke stranice

Load Time: 734,3676 ms
print   |
Label

Korištenje "Engine" objekta

Korištenje "Engine" objekta

Već smo rekli da "Engine" objekat predstavlja motor izvještaja, koji upravlja konstrukcijom izvještaja. Proces raspoređivanja traka na stranici može se upravljati korištenjem svojstava i metoda motora. Prvo malo teorije.

Donji dijagram prikazuje različite dimenzije stranice izvještaja.

_img242

Fizičke dimenzije stranice su svojstva "PaperWidth" i "PaperHeight", vidljiva u inspektoru objekata kada je stranica odabrana. Dakle, veličina A4 stranice je 210 x 297mm.

"PageWidth" i "PageHeight" su dimenzije štampane regije, koja je obično manja od fizičkih dimenzija stranice. Veličina štampane regije zavisi od svojstava stranice izvještaja "LeftMargin", "TopMargin", "RightMargin" i "BottomMargin". Veličina štampane regije u pikselima vraća se funkcijama "Engine.PageWidth" i "Engine.PageHeight".

Na kraju, "FreeSpace" je visina slobodnog prostora na stranici. Ako postoji traka "Page Footer" na stranici, njena visina se uzima u obzir prilikom izračunavanja "FreeSpace". Ova visina se vraća u pikselima funkcijom "Engine.FreeSpace". Imajte na umu da se nakon prikazivanja sljedeće trake slobodni prostor smanjuje na stranici, to se uzima u obzir prilikom izračunavanja "FreeSpace".

Kako se konstruiraju stranice izvještaja? FastReport jezgro prikazuje trake na stranici sve dok ima dovoljno slobodnog prostora. Kada više nema slobodnog prostora, traka "Page Footer" se štampa (ako je potrebno) i kreira se nova prazna stranica. Kao što je već rečeno, nakon prikazivanja sljedeće trake visina slobodnog prostora se smanjuje. Štaviše, prikaz sljedeće trake počinje od trenutne pozicije, koja je definirana koordinatama na X-osi i Y-osi. Trenutna pozicija se vraća funkcijama "Engine.CurX" i "Engine.CurY". Nakon štampanja sljedeće trake, CurY se automatski povećava za visinu štampane trake. Nakon što se kreira nova stranica, "CurY" je jednako "0." "CurX" se mijenja prilikom štampanja višekolonnih izvještaja.

"Engine.CurX" i "Engine.CurY" su dostupni ne samo za čitanje već i za pisanje. To znači da se trake mogu pomjerati povećanjem ili smanjenjem ovih vrijednosti. Na primjer, u izvještaju koji liči na ovo:

_img243

Može se štampati na sljedeći način:

_img244

To se postiže pisanjem handler-a za događaj "OnBeforePrint" trake:

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

  Engine.CurX := Engine.CurX + 5;

end;

Promjena "CurY" može uzrokovati preklapanje traka, na primjer:

_img245

Postignuto ovim skriptom:

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

  Engine.CurY := Engine.CurY - 15;

end;

Metoda "Engine.NewPage" umetne prekid stranice na bilo kojoj potrebnoj tački u izvještaju, nakon čega štampanje nastavlja od vrha nove izlazne stranice. U našem primjeru prekid se može umetnuti nakon štampanja drugog zapisa:

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);

begin

   if <Line> = 2 then

     Engine.NewPage;

end;

Imajte na umu da smo koristili događaj "OnAfterPrint" (to jest, nakon što je traka štampana). Također imajte na umu da sistemska varijabla "Line" vraća sekvencijalni broj zapisa.

Metoda "Engine.NewColumn" umetne prekid kolone u višekolonim izvještajima. Ako više nema slobodnih kolona na stranici, tada se kreira nova stranica.

Račun sa Uplatnicama


Sljedeći primjer je predstavljen na otisak naručnica i računa sa uplatnicama. Oni su dostupni samo za slovenačko i hrvatsko zakonodavstvo. Takvi izvještaji su '2U2 - Račun - UPN - Obrazac' za slovenačko i '2U7 - Račun - HUB 3A - Obrazac' za hrvatsko zakonodavstvo. Možete vidjeti dizajn ovih izvještaja otvaranjem dizajnera izvještaja iz registra izvještaja.

Želimo štampati uplatnicu uvijek tačno na dnu stranice. Da bismo prisilili ovo ponašanje, postavljamo trenutnu vertikalnu poziciju (Engine.CurY) trake sažetka izvještaja tako da postoji tačno dovoljno prostora za prikaz na ovoj stranici. To radimo sa sljedećim kodom:

procedure UPNOnBeforePrint(Sender: TfrxComponent);
begin
  ...
  Engine.CurY := Engine.CurY + Engine.FreeSpace - UPN.Height - 1;
end; 

Prilikom kreiranja izvještaja, uplatnica će preklapati postojeći tekst ako je previsoka. Tako da moramo ispraviti naš kod da štampamo uplatnicu na sljedećoj stranici u ovom slučaju.

procedure UPNOnBeforePrint(Sender: TfrxComponent);
begin
  ...
  if Engine.CurY > Engine.CurY + Engine.FreeSpace - UPN.Height - 1 then
    Engine.NewPage;  
  Engine.CurY := Engine.CurY + Engine.FreeSpace - UPN.Height - 1;
end; 



Rate this topic
Was this topic usefull?
Comments
Comment will also bo visible in forum!