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
      [Collapse]Crearea Raportelor
        Raportați obiectele
        "Bună, lume!" Exemplu de raport
        Lucru de bază cu obiecte
        Obiectul "Text"
        Afișarea expresiilor cu ajutorul obiectului "Text"
        Bande
        "Lista Subiectelor" Raport: Aliasuri și Variabile
        "Imagine" Obiect
        Întinderea Obiectelor, Împărțiri de Pagină și Mutarea Obiectelor
        Afișarea datelor sub formă de tabel
        Tipărirea Etichetelor
        Trupe de copii
        Raport cu Două Niveluri de Date (Master-Detail)
        Antete și Subsoluri ale unei Benzi de Date
        Raport Multi-Pagină
      [Expand]Grupuri și Agregate
      [Expand]Formatare și Evidențiere
       Rapoarte Încapsulate (Subrapoarte)
      [Expand]Specificațiilor printurilor în PANTHEON
      [Expand]Script
       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: 1015,6794 ms
"
  1006255 | 218616 | 476618 | AI translated
Label

Obiecte extensibile

Obiecte de întindere

Să considerăm un caz în care avem text pe mai multe linii de lungimi variate. Obiectul "Text" care afișează informațiile din acest câmp are o dimensiune fixă. De aceea, unele linii par a fi tăiate. Ce se poate face în legătură cu asta?

clip0155

Desigur, fie dimensiunea obiectului ar putea fi crescută, fie dimensiunea fontului ar putea fi redusă. Cu toate acestea, acest lucru poate duce la risipirea spațiului pe pagina de ieșire, deoarece unele pești au descrieri lungi, în timp ce altele au descrieri scurte. FastReport are câteva proprietăți care ne permit să rezolvăm această problemă.

Aceste proprietăți permit unui band sau unui obiect să își ajusteze automat înălțimea pentru a crea spațiul necesar pentru un anumit record (rând). Pentru a realiza acest lucru, trebuie doar să activăm proprietatea “Stretch” atât a band-ului, cât și a obiectului “Text”. Cu toate acestea, nu este totul, deoarece un obiect “Text” cu text mai lung ar trebui să fie capabil să se întindă singur, așa că va trebui să setăm și unele dintre celelalte proprietăți ale sale.

Obiectul “Text” poate seta automat înălțimea și lățimea sa pentru a face loc pentru conținutul său. “AutoWidth” și “StretchMode” pot fi folosite pentru aceasta. “AutoWidth” permite obiectului “Text” să varieze lățimea astfel încât toate liniile să facă loc fără a despărți cuvintele. Acest mod este util atunci când un obiect are o singură linie de text și când creșterea spre dreapta nu va afecta alte obiecte. Proprietatea “Stretch” permite înălțimii obiectului să crească pentru a acomoda textul fără a schimba lățimea obiectului. "Stretch" are mai multe moduri care pot fi selectate în inspectorul de obiecte:

smDontStretch – nu întinde obiectul (implicit)

smActualHeight – întinde obiectul astfel încât să facă loc pentru întregul text

smMaxHeight – întinde obiectul astfel încât partea de jos să ajungă la partea de jos a band-ului în care este plasat - vom analiza acest mod mai târziu

Aici suntem interesați de proprietatea “Stretch” a obiectului “Text”. Activează-o folosind meniul contextual al obiectului sau setând "StretchMode" la smActualHeight. De asemenea, activează proprietatea “Stretch” a band-ului. Previziunea raportului și asigură-te că totul este acum așa cum te aștepți.

Pentru a curge textul într-o nouă linie, folosim proprietatea "Word Wrap" care trebuie activată, ceea ce este deja valoarea implicită. Această proprietate este semnificativă dacă proprietatea "AutoWidth" este activată.  

După cum poți vedea, atunci când construiește raportul, FastReport umple obiectele cu date și le întinde dacă “Stretch” este activat. Apoi calculează înălțimea band-ului astfel încât fiecare obiect să aibă suficient loc. Dacă proprietatea “Stretch” a band-ului este dezactivată, această ajustare a înălțimii nu este efectuată și band-ul este afișat la înălțimea setată în design. În acest caz, am vedea că obiectele cu text mai lung ar fi totuși întinse, dar band-ul nu, ceea ce duce la suprapunerea textului, deoarece band-ul următor este afișat imediat după cel anterior.

Împărțiri de pagină

Când un raport este creat, motorul FastReport umple spațiul alb al paginii cu band-uri. După afișarea fiecărui band, poziția curentă se mută în jos. Când FastReport constată că nu mai este suficient spațiu alb rămas pentru a afișa următorul band (înălțimea sa este mai mare decât spațiul alb rămas pe pagină), FastReport creează o pagină nouă și continuă cu afișarea band-ului de acolo. Această secvență continuă de câte ori sunt înregistrări în setul de date.

Raportul nostru conține un obiect cu text mare, motiv pentru care înălțimea band-ului este destul de mare. În plus, dacă un band mare nu are suficient loc pe o pagină, este mutat pe pagina următoare lăsând mult spațiu nefolosit în partea de jos a paginii, așa cum este arătat aici:

_img94

Pentru a limita risipa de hârtie, să folosim o caracteristică FastReport care face paragrafe din conținutul unui band. Tot ce trebuie să facem este să activăm proprietatea “AllowSplit” a band-ului “First level data”. Vei vedea că acum există mai puțin spațiu alb în partea de jos a paginilor raportului:

_img95

Cum funcționează această împărțire a band-ului? Există câteva obiecte în FastReport care suportă această caracteristică. Acestea sunt obiectele “Text”, “Line” și “RichEdit”. Ele pot fi “împărțite”, în timp ce alte obiecte nu pot. Când FastReport trebuie să împartă un band, o face în următorul mod:

- afișează obiectele care nu pot fi împărțite și care au loc în spațiul alb

- afișează parțial obiectele care pot fi împărțite (obiectele “Text” sunt afișate astfel încât toate liniile au spațiu în obiect)

- creează o pagină nouă și continuă cu afișarea obiectelor în band

- dacă un obiect care nu poate fi împărțit nu are loc în spațiul alb, este mutat pe pagina următoare; în același timp, toate obiectele situate dedesubt sunt mutate după cum este necesar

- procesul continuă până când toate obiectele band-ului sunt afișate complet.

Algoritmul de împărțire va deveni mai clar prin examinarea acestui exemplu:

_img96

Trebuie menționat că algoritmul de împărțire nu este perfect și ieșirea finală poate să nu fie chiar așa cum te aștepți. Ar trebui să folosești această opțiune cu foarte multă atenție în cazurile în care obiectele de pe band-ul împărțit sunt grupate într-un mod complicat și/sau dimensiunile fonturilor lor diferă. Iată un exemplu de ceea ce ar putea fi generat:

clip0020

Mutarea obiectelor

Să ne uităm la diferitele moduri de mutare. În acest scop, folosim proprietatea “ShiftMode”. Să ne uităm la 'smWhenOverlapped'​ modul de mutare. În acest mod, mutarea obiectului are loc atunci când obiectul de deasupra se întinde și suprapune obiectul de dedesubt. Iată două scenarii:

1: cele trei obiecte de sus au “Stretch” activat și cele trei obiecte de jos au “ShiftMode” setat la 'smAlways'. Obiectele de jos se mută doar suficient pentru a permite spațiu pentru obiectul întins de deasupra:

_img115

2: cele trei obiecte de sus au “Stretch” activat și cele trei obiecte de jos au “ShiftMode” setat la 'smWhenOverlapped'. Obiectele de jos se mută pentru a permite spațiu pentru obiectul întins și, de asemenea, pentru a menține separarea proiectată a celor două obiecte:

_img116

Aceasta permite crearea de rapoarte complicate, în special acolo unde un obiect ar putea suprapune mai multe alte obiecte deasupra sa în același timp. În exemplul de mai jos, toate obiectele superioare conțin text extensibil și toate cele inferioare sunt în modul 'smWhenOverlapped'. Obiectele inferioare vor fi întotdeauna afișate aproape de obiectul de deasupra, indiferent de lungimea textului din obiectele de deasupra:

_img117

 

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