PANTHEON™ Help

 Toc
 PANTHEON Ajutor - Bun venit
[Collapse]PANTHEON
 [Collapse]Ghiduri pentru PANTHEON
  [Collapse]Ghid pentru PANTHEON
   [Collapse]Setări
    [Expand]Subiecte
    [Expand]Articole
    [Expand]POS
    [Expand]Fabricare
    [Expand]Personal
     Calendar
    [Expand]Financiare
    [Expand]Vamă
    [Collapse]Program
     [Expand]Tipuri de Documente
     [Collapse]Rapoarte în PANTHEON
       Setări în Panoul de Administrare
      [Expand]Registrul Raporturilor
       Previzualizare imprimare
      [Expand]Designer de rapoarte
      [Expand]Crearea Raportelor
      [Expand]Grupuri și Agregate
      [Expand]Formatare și Evidențiere
       Rapoarte Încapsulate (Subrapoarte)
      [Expand]Specificațiilor printurilor în PANTHEON
      [Collapse]Script
        "Bună, lume!" Script
        Folosind variabile, câmpuri de bază de date și funcții agregate
        Folosind Obiecte de Raport în Script
        Evenimente
        Exemplu de utilizare a evenimentului "OnBeforePrint"
        Tipărirea unei sume de grup în antetul grupului
        Totalul acumulat
        "OnAfterData" Eveniment
        Obiecte de Serviciu
        Folosind obiectul "Motor"
       [Expand]FUNCȚII PANTHEON pentru FastReport
       [Expand]Exemple cu Tabele și Interogări
       Considerații privind designul raportului
      Texte Document
      Metode de livrare
     [Expand]Cărți de fidelitate
     [Expand]Panoul de Administrare
     [Expand]Componente Dashboard
      Rapoarte de tabloul de bord
      Analiză ad-hoc
     [Expand]ARES
      SQL editor
    [Expand]Documentație
    [Expand]Schimbă utilizatorul
   [Expand]Comenzi
   [Expand]Produse
   [Expand]Fabricare
   [Expand]POS
   [Expand]Serviciu
   [Expand]Financiare
   [Expand]Personal
   [Expand]Analitică
   [Expand]Desktop
   [Expand]Ajutor
   [Expand]Mesaje și Avertizări
   [Expand]Programe suplimentare
   [Expand]Produse vechi
  [Expand]Ghid pentru PANTHEON Retail
  [Expand]Ghid pentru PANTHEON Vet
  [Expand]Ghid pentru PANTHEON Fermă
 [Collapse]Manuale de utilizare pentru PANTHEON
  [Expand]Manual de utilizare pentru PANTHEON
  [Expand]Manual de utilizare pentru PANTHEON Retail
  [Expand]Manual de utilizare pentru PANTHEON Vet
  [Expand]Manual de utilizare pentru PANTHEON Farming
[Collapse]PANTHEON Web
 [Collapse]Ghiduri pentru PANTHEON Web
  [Expand]Ghid pentru PANTHEON Web Light
  [Expand]Ghid pentru Terminalul Web PANTHEON
  [Expand]Ghid pentru PANTHEON Web Legal
  [Expand]Arhivă produse vechi
 [Collapse]Manuale de utilizare pentru PANTHEON Web
  [Expand]Începerea PANTHEON Web
  [Expand]Manual de utilizare pentru PANTHEON Web Light
  [Expand]Manual de utilizare pentru terminalul web PANTHEON
  [Expand]Manual de utilizare pentru PANTHEON Web Legal
  [Expand]Arhivă produse vechi
[Collapse]PANTHEON Granule
 [Collapse]Ghiduri pentru granule PANTHEON
  [Expand]Granul Personal
  [Expand]Comenzi de Călătorie Granule
  [Expand]Documente și Sarcini Granul
  [Expand]Tabloul de bord Granule
  [Expand]Comenzi B2B Granule
  [Expand]Granul de Serviciu pe Teren
  [Expand]Granul Inventar Active Fixe
  [Expand]Inventar de Magazin Granule
 [Collapse]Manuale de utilizare pentru granulele PANTHEON
  [Expand]Începerea
  [Expand]Granul Personal
  [Expand]Comenzi de Călătorie Granule
  [Expand]Documente și Sarcini Granul
  [Expand]Comenzi B2B Granule
  [Expand]Tabloul de bord Granule
  [Expand]Serviciul de teren Granule
  [Expand]Granul Inventar Active Fixe
  [Expand]Inventar de Magazin Granule
  [Expand]Arhivă
[Expand]Site utilizator

Load Time: 390,6326 ms
"
  1006305 | 218664 | 476288 | AI translated
Label

Referința câmpurilor bazei de date

Evenimente

Până acum am analizat scripturi cu doar o procedură principală, care este executată atunci când un raport începe să ruleze. În procedura principală pot fi făcute setări inițiale și variabile inițializate. Cu toate acestea, acest lucru nu este suficient pentru un control total asupra procesului de generare a raportului. Pentru a permite cât mai mult control posibil asupra generării raportului, fiecare obiect are mai multe evenimente la care pot fi atribuite handler-e (adică proceduri în script). De exemplu, conectarea unui handler la banda de date permite filtrarea înregistrărilor, astfel încât banda poate fi ascunsă sau dezvăluită în funcție de îndeplinirea unor condiții specifice.

Haideți să demonstrăm procesul de creare a raportului și evenimentele declanșate printr-un raport simplu care conține o pagină și are o bandă “MasterData”, cu două obiecte “Text” pe bandă:

clip0191

Așa cum s-a descris mai sus, procedura principală a scriptului este apelată chiar la începutul rularii raportului. După aceea, încep esențele construcției raportului. În primul rând, evenimentul “OnStartReport” al obiectului "Report" este apelat. Apoi, înainte de a fi creată o pagină de ieșire, evenimentul “OnBeforePrint” al paginii este apelat. Acest eveniment este apelat o dată pentru fiecare pagină de design din șablonul raportului (pagini de design nu trebuie confundate cu paginile de ieșire ale unui raport!). În exemplul nostru, evenimentul este apelat o dată, deoarece designul raportului constă dintr-o singură pagină de design.

Apoi, evenimentele benzilor de date sunt apelate în următoarea ordine:

1. evenimentul “OnBeforePrint” al benzii este apelat

2. evenimentul “OnBeforePrint” al fiecărui obiect conținut în bandă este apelat

3. fiecare obiect este umplut cu date (în exemplul nostru cu valorile câmpurilor DB “Company” și “Addr1”)

4. evenimentul “OnAfterData” al fiecărui obiect este apelat

5. acțiuni precum poziționarea obiectelor pe bandă (dacă există obiecte extensibile printre ele), calcularea înălțimii benzii și întinderea acesteia (dacă este extensibilă) sunt efectuate

6. evenimentul “OnAfterCalcHeight” al benzii este apelat

7. o nouă pagină de ieșire este creată dacă banda nu are suficient spațiu în alb al paginii

8. banda și toate obiectele sale sunt afișate pe pagina de ieșire

9. evenimentul “OnAfterPrint” al fiecărui obiect din bandă este apelat

10. evenimentul “OnAfterPrint” al benzii în sine este apelat

Benzile continuă să fie tipărite atâta timp cât sursa conectată la bandă are date. După aceea, tipărirea raportului se oprește, evenimentul “OnAfterPrint” al paginii raportului este apelat și, în final, evenimentul “OnStopReport” al obiectului “Report”.

Așadar, folosind evenimentele diferitelor obiecte, practic fiecare pas al procesului de creare a raportului poate fi gestionat. Cheia utilizării evenimentelor este o înțelegere temeinică a procesului de ieșire a benzii, care este discutată în secțiunile următoare. Cele mai multe dintre acțiuni pot fi efectuate folosind doar evenimentul “OnBeforePrint” al benzii; orice modificări aduse unui obiect sunt afișate imediat. Cu toate acestea, dacă banda este extensibilă, este imposibil să se spună în acest eveniment pe ce pagină va fi tipărită banda, deoarece calculul înălțimii benzii este efectuat în pasul 5. Acest lucru poate fi realizat, totuși, fie în evenimentul “OnAfterCalcHeight” din pasul 6, fie în evenimentul “OnAfterPrint” din pasul 9. Rețineți că în ultimul eveniment banda va fi deja fost ieșită, astfel încât modificările aduse obiectelor nu vor avea niciun efect vizibil.

Este esențial să înțelegem clar “unde și când” benzile sunt ieșite și să înțelegem cronologia (ordinea apelurilor) fiecărui dintre evenimentele lor. La fel și pentru fiecare dintre obiectele conținute în benzi.

 

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