Drkb online - crearea rapoartelor utilizând Rapoartele rapide 3 (articolul)

procedura TForm1.Button1Click (expeditor: TObject);
începe
QuickRep1.Preview;
se încheie;

procedura TForm1.Button1Click (expeditor: TObject);
începe
QuickRep1.Print;






se încheie;

În acest moment, ar trebui să faceți câteva comentarii. În acest program de testare, componenta TQuickRep este situată pe formularul principal și, după cum puteți vedea, nu arată foarte bine. Într-un program real, nu veți mai afișa niciodată un formular care să conțină TQuickRep. În schimb, o veți marca pe un alt formular.
Pentru a face acest exemplu similar cu această aplicație, vom face mai mulți pași:

procedura TForm2.Button1Click (expeditor: TObject);
începe
Form1.QuickRep1.Preview;
se încheie;

procedură TForm1.QRCompositeReport1AddReports (
Expeditor: TObject);
începe
QRCompositeReport1.Reports.Add (RepNewCust.Report);
QRCompositeReport1.Reports.Add (RepOrderSummary.Report);
QRCompositeReport1.Reports.Add (RepStockReorder.Report);
se încheie;

(Dacă nu disprețuiți utilizarea codului cu operatorul cu, puteți scrie acest lucru
cu QRCompositeReport1.Reports face
începe
.
se încheie;

Pentru a utiliza filtrele de date Text sau CSV în același mod, utilizați același apel la ExportToFilter, dar specificați numai filtrul corespunzător ca TQRAsciiExportFilter sau TQRCommaSeparatedFilter.

Inspectorul de obiecte arată dacă această secțiune este utilizată sau nu și puteți adăuga sau șterge orice secțiune doar prin setarea proprietății corespunzătoare. Secțiunile create în acest fel au nume care descriu scopul lor: DetailedBand1, PageHeaderBand1, etc. Proprietatea BandType este setată automat.
Deși este posibilă adăugarea manuală a secțiunilor și instalarea BandType în rbSubDetail sau rbGroupHeader, acest lucru nu este recomandat. Aceste secțiuni sunt destinate utilizării numai cu secțiunile TQRSubDetail și TQRGroup. Folosirea lor în altă parte poate da rezultate imprevizibile.
De asemenea, puteți adăuga secțiuni selectând componentele TQRBand din paletă și plasându-le în raport. Rețineți că, în acest caz, trebuie să aveți grijă să instalați proprietatea BandType și trebuie să oferiți secțiunii un nume adecvat. Proprietatea Băncii din containerul TQuickRep este convertită automat pentru a reflecta secțiunile adăugate în raport în acest fel.
Iată o listă cu secțiuni simple pe care le puteți adăuga la raport:
Tipul de bandă Scop
Antetul paginii Prima secțiune este de obicei imprimată pe fiecare pagină. Imprimarea pe prima pagină este determinată de proprietatea Options.FirstPageHeader. Valoare implicită: tipăriți pe prima pagină.
Titlul secțiunii titlului - prima secțiune care este tipărită în raport (după titlul primei pagini, dacă există). Adesea folosit pentru a imprima pagina de titlu a unui raport, criteriile pentru selectarea datelor, data și ora creării, etc.
Antetul coloanelor Secțiunea antet, tipărită în partea de sus a raportului regulat, pe fiecare pagină. După titlul paginii (și după titlu pe prima pagină). În multe rapoarte ale coloanelor. este imprimat pentru fiecare coloană. Este adesea folosit pentru tipărirea câmpurilor.
Detaliu O secțiune pentru imprimarea fiecărei intrări (rând) a setului de date. Aceasta este, desigur, cea mai importantă secțiune din raport și care ocupă locul principal în raportul dvs. Trebuie să puneți componentele de imprimare bazate pe date, cum ar fi TQRDBText, în această secțiune.






Rezumat După imprimarea tuturor secțiunilor detaliate, puteți imprima totalul rezumat din această secțiune.
Page Footer Ultima secțiune a fiecărei pagini. Imprimarea pe ultima pagină este determinată de proprietatea Options.LastPageFooter.

După ce adăugați secțiuni noi în raport, vedeți modul în care sunt poziționate în ordinea tipăririi reale. Puteți vedea că secțiunea Header Page este plasată în sus, urmată de secțiunea Titlu, antetul coloanei ș.amd.

Tipul fiecărei secțiuni este tipărit cu litere mici în colțul din stânga jos. Acest lucru vă permite să le identificați într-un raport. Acest text nu este inclus în raportul final.
Secțiunile care apar în componentele raportului TQuickRep sunt afișate în ordinea în care vor fi tipărite. Acest lucru vă ajută să înțelegeți cum va fi tipărită. Cea mai obișnuită utilizare a secțiunilor este prezentată în Figura 10, dar acest lucru devine foarte complicat atunci când începeți imprimarea sub-secțiunilor și gruparea.
Dimensiunile secțiunilor
Secțiunile primesc dimensiunea lor orizontală din componenta TQuickRep. Proprietățile Size.Width sunt utilizate numai ca citire; Încercarea de a scrie alte valori în ele este ignorată. Pentru un raport cu o singură coloană, lățimea tuturor secțiunilor este setată la egal cu lățimea paginii minus marginile din stânga și din dreapta. În raportul cu mai multe coloane, lățimea secțiunii (Antetul coloanei, Detaliu, Subtip, Antet grup și Subsol de grup) este ajustată la lățimea disponibilă a coloanei individuale
Cu toate acestea, puteți schimba dimensiunea verticală a secțiunii. Selectați o secțiune și redimensionați cu mouse-ul sau modificând proprietatea Size.Height.
Activarea și dezactivarea secțiunilor
Uneori nu doriți să interziceți tipărirea unei secțiuni sau a unei alte secțiuni. Acest lucru se poate face fie în timpul de proiectare, fie în timpul de execuție, prin setarea proprietății TQRBand.Enabled la False.
La generarea unui raport, puteți, de asemenea, să împiedicați temporar imprimarea unei secțiuni în dispozitivul de procesare a evenimentelor BeforePrint. Acest handler are un parametru PrintBand, pe care îl puteți seta la False pentru a împiedica imprimarea unei secțiuni - dar o singură dată. Această proprietate este foarte convenabilă pentru organizarea unei filtre simple:

procedura TrepCusList.RepDetailBeforePrint
(Expeditor: TQRCustomBand;
var PrintBand: Boolean);
începe
PrintBand: = CustTableTotalSales> 3000000;
se încheie;


Notă: Când PrintBand este setat la False pentru secțiunea detaliu, valorile pentru această intrare nu sunt incluse în calculul funcțiilor agregate TQRExr, de exemplu, funcția SUM. Acest comportament diferă între versiunile QuickReport 2 și QuickReport 3.
Dacă dezactivați secțiunea Footer Page, efectul este spațiul gol din partea de jos a fiecărei pagini - secțiunea Detalii nu utilizează acest spațiu, QuickReport nu verifică de fiecare dată dimensiunea paginii. Deci, dacă schimbați proprietatea Enabled (Activat) din secțiunea Footer Page, apelați metoda ResetPageFooterSize pentru a actualiza informațiile.

// utilizați QRPrntr pentru a obține TQRPreviewInterface

TQRCustomPreviewInterface = clasă (TQRPreviewInterface)
public
Afișare funcție (AQRPrinter.TQRPrinter)
. TWinControl; suprascrie;
funcția ShowModal (AQRPrinter.TQRPrinter)
. TWinControl; suprascrie;
se încheie;

funcția TQRCustomPreviewInterface.Show (
AQRPrinter: TQRPrinter): TWinControl;
var
FRM. TCustPreview;
începe
frm: = TCustPreview.Create (Cerere, AQRPrinter);
frm.Show;
Rezultat: = frm;
se încheie;

funcția TQRCustomPreviewInterface.ShowModal (
AQRPrinter: TQRPrinter): TWinControl;
var
FRM. TCustPreview;
începe
frm: = TCustPreview.Create (Cerere, AQRPrinter);
frm.ShowModal;
Rezultat: = frm;
se încheie;

# 123; $ WARNINGS OFF # 125;
TCustPreview = clasa (TForm)
QRPreview1: TQRPreview;
procedura CustPreviewClose (expeditor: TObject;
var Action: TCloseAction);
privat

fQRPrinter. TQRPrinter;
public

constructor Creare (AOwner. TComponent;
AQRPrinter. TQRPrinter); virtuale;
se încheie;
# 123; avertismentele $ ON # 125;

constructorul TCustPreview.Create (AOwner: TComponent;
AQRPrinter: TQRPrinter);
începe
moștenit crea (AOwner);
fQRPrinter: = AQRPrinter;
QRPreview1.QRPrinter: = AQRPrinter;
se încheie;

procedura TCustPreview.CustPreviewClose (expeditor: TObject;
var Action: TCloseAction);
începe
fQRPrinter.ClosePreview (Self);
Acțiune: = caFree;
se încheie;

Nota de la Vit: Publicată cu abrevieri







Trimiteți-le prietenilor: