Pogledaj upute za PANTHEON™

 Categories
 Početna stranica
[Collapse]PANTHEON
 [Collapse]PANTHEON priručnici
  [Expand]Vodič kroz Datalab PANTHEON Farming
  [Expand]Vodič za mobilni POS
  [Collapse]Vodič po DataLab PANTHEON™-u
   [Expand]Pomoć
   [Collapse]Postavke
    [Expand]Dokumentacija
    [Expand]POS
    [Expand]Dokumentacija-staro
    [Expand]Redak s naredbama
    [Expand]Dokumentacija
    [Expand]Subjekti
    [Expand]Identi
    [Expand]Proizvodnja
    [Expand]Zaposleni
     Kalendar - Vrste zapisa
    [Expand]Računovodstvo
    [Expand]Carina
    [Collapse]Program
     [Collapse]Ispisi u PANTHEONU
      [Collapse]Oblici ispisa
        Prijenos ispisa u druge baze
        Postavke u Administrativnoj Ploči
        Izvoz oblika ispisa
        Uvoz oblika ispisa
        Prečac za ispis
       [Expand]Izvještaji Registar
        Pregled ispisa
       [Expand]Izvještajni dizajner
        Dupliciranje ispisa i mijenjanje tipa ispisa
       [Expand]Izrada Izvještaja
       [Expand]Grupe i Agregati
       [Expand]Poruke pri oblikovanju ispisa
       [Expand]Oblikovanje ispisa
       [Expand]Formatiranje i Isticanje
        Ugniježdene izvještaje (podizvještaji)
       [Expand]Specifičnosti ispisa u PANTHEON-u
       [Collapse]Scenarij
         "Pozdrav, svijete!" Skripta
         Korištenje varijabli, polja baze podataka i agregatnih funkcija
         Korištenje izvještajnih objekata u skripti
         Dogodci
         Primjer korištenja "OnBeforePrint" događaja
         Ispisivanje zbroja grupe u zaglavlju grupe
         Trenutni Zbroj
         "OnAfterData" Događaj
         Servisni objekti
         Koristeći "Engine" objekt
        [Expand]PANTHEON Funkcije za FastReport
        [Expand]Primjeri s Tablicama i Upitima
        Razmatranja o dizajnu izvještaja
       Radno okruženje
     [Expand]Kartice povjerenja
     [Expand]Knjiga pošte
     [Expand]Kartice vjernosti
     [Expand]Ad-hoc analize
     [Expand]Vrste dokumenata
      Tekstovi za dokumente
      Načini dostave
      Izvještaji nadzorne ploče
      Ad-hoc analiza
     [Expand]Izvještaji nadzorne ploče
     [Expand]ARES
      SQL urejevalnik
     [Expand]Administratorska konzola
     [Expand]Zamijeni korisnika Ctrl - U
     [Expand]Elementi nadzorne ploče
   [Expand]Narudžbe
   [Expand]Roba
   [Expand]Proizvodnja
   [Expand]Servis
   [Expand]POS
   [Expand]Novac
   [Expand]Kadrovi
   [Expand]Radna površina
   [Expand]Analize
   [Expand]Plansko-analitički alati ZEUS
   [Expand]Poruke programa
   [Expand]Dodatni programi
   [Expand]Sistemska okolina
   [Expand]Dodatni programi
   [Expand]Stari proizvodi
    Riječnik pojmova
  [Expand]Vodič po PANTHEON Vet
 [Expand]PANTHEON korisnički priručnici
[Expand]PANTHEON Web
[Expand]PANTHEON Granule

Load Time: 749,9834 ms
print   |
Label

Korištenje "Engine" objekta

Korištenje "Engine" objekta

Već smo rekli da "Engine" objekt predstavlja motor izvještaja, koji upravlja konstrukcijom izvještaja. Proces raspoređivanja bendova 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 područja za ispis, koje je obično manje od fizičkih dimenzija stranice. Veličina područja za ispis ovisi o svojstvima stranice izvještaja "LeftMargin", "TopMargin", "RightMargin" i "BottomMargin". Veličina područja za ispis u pikselima vraća se funkcijama "Engine.PageWidth" i "Engine.PageHeight".

Na kraju, "FreeSpace" je visina slobodnog prostora na stranici. Ako postoji bend "Page Footer" na stranici, njegova 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ćeg benda slobodni prostor smanjuje na stranici, to se uzima u obzir prilikom izračunavanja "FreeSpace".

Kako se konstruiraju stranice izvještaja? FastReport jezgra prikazuje bendove na stranici sve dok ima dovoljno slobodnog prostora. Kada više nema slobodnog prostora, bend "Page Footer" se ispisuje (ako je potrebno) i stvara se nova prazna stranica. Kao što je već rečeno, nakon prikazivanja sljedećeg benda visina slobodnog prostora se smanjuje. Štoviše, prikaz sljedećeg benda počinje od trenutne pozicije, koja je definirana koordinatama na X-osi i Y-osi. Trenutna pozicija vraća se s "Engine.CurX" i "Engine.CurY". Nakon ispisa sljedećeg benda, CurY se automatski povećava za visinu ispisanog benda. Nakon što se stvori nova stranica, "CurY" je jednako "0." "CurX" se mijenja prilikom ispisa višekolonnih izvještaja.

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

_img243

Može se ispisati na sljedeći način:

_img244

To se postiže pisanjem handlera za događaj benda "OnBeforePrint":

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

  Engine.CurX := Engine.CurX + 5;

end;

Promjena "CurY" može uzrokovati preklapanje bendova, 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 točki u izvještaju, nakon čega se ispis nastavlja s vrha nove izlazne stranice. U našem primjeru prekid se može umetnuti nakon ispisa 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 bend ispisan). Također imajte na umu da "Line" sistemska varijabla vraća redni broj zapisa.

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

Račun s nalogom za plaćanje


Sljedeći primjer prikazan je na ispisu naloga i računa s nalozima za plaćanje. Oni su dostupni samo za slovensko i hrvatsko zakonodavstvo. Takvi izvještaji su '2U2 - Račun - UPN - Obrazac' za slovensko 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 ispisati nalog za plaćanje uvijek točno na dnu stranice. Da bismo prisilili ovo ponašanje, postavljamo trenutnu vertikalnu poziciju (Engine.CurY) benda sažetka izvještaja tako da postoji točno dovoljno prostora za prikazivanje na ovoj stranici. To radimo s sljedećim kodom:

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

Kada se stvara izvještaj, nalog za plaćanje će preklapati postojeći tekst ako je previsok. Stoga moramo ispraviti naš kod da ispišemo nalog za plaćanje 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!