Drkb Online - jelentések létrehozását QuickReport 3 (cikk)

eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
QuickRep1.Preview;
végén;

eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
QuickRep1.Print;
végén;

Ezen a ponton meg kell néhány megjegyzést tenni. Ez a teszt programot TQuickRep összetevő található a fő formája, és mint láthatjuk, hogy nem néz ki nagyon jó. Egy igazi programot, akkor soha nem fog mutatni a formában tartalmazó TQuickRep. Ehelyett használja azt egy másik formában.
Annak érdekében, hogy ez a példa hasonló a jelen bejelentés tenni néhány lépést:

eljárás TForm2.Button1Click (Sender: TObject);
kezdődik
Form1.QuickRep1.Preview;
végén;

eljárás TForm1.QRCompositeReport1AddReports (
Küldő: TObject);
kezdődik
QRCompositeReport1.Reports.Add (RepNewCust.Report);
QRCompositeReport1.Reports.Add (RepOrderSummary.Report);
QRCompositeReport1.Reports.Add (RepStockReorder.Report);
végén;

(Ha nem megvetés az az állítás a kódban, akkor írom ezt
A QRCompositeReport1.Reports do
kezdődik
.
végén;

Ahhoz, hogy a szöveg, vagy CSV szűrők ilyen módon használja ugyanazt ExportToFilter hívást, de válassza ki a megfelelő szűrőt, vagy egy TQRAsciiExportFilter TQRCommaSeparatedFilter.

Az Object Inspector mutatja, hogy egy adott sávban, vagy nem, és akkor hozzáadni vagy eltávolítani bármely részén állításával egyszerűen a megfelelő ingatlan. Zenekarok így létrehozott neveket, amelyek leírják a funkció: DetailBand1, PageHeaderBand1 stb BandType tulajdonság beállítása automatikusan történik.
Bár lehetséges, hogy adjunk szakaszok és kézzel telepíteni BandType a rbSubDetail vagy rbGroupHeader, de ez nem ajánlott. Ezeket a szakaszokat szánt csak TQRSubDetail és TQRGroup alkatrészeket. Használatukkal ahol más nem adhat kiszámíthatatlan eredményeket.
Azt is hozzá egy rész kiválasztásával alkatrészeket paletta TQRBand és forgalomba őket a jelentésben. Figyeljük meg, hogy ebben az esetben meg kell tennie, hogy aggódnia a tulajdonságok beállításával BandType, és meg kell adnia a nevét a megfelelő fejezetre. Az ingatlan TQuickRep konténer együttesek automatikusan átvált tükrözze a szakaszok hozzá a jelentés ilyen módon.
Itt van egy lista az egyszerű szakaszok, amelyeket felvehet a jelentésbe:
Sávtípus Cél
Első oldalfej általában nyomtatott minden oldalon. Az első oldal határozza meg az ingatlan Options.FirstPageHeader. Az alapértelmezett érték van nyomtatva az első oldalon.
Cím neve rész - az első rész, amely a nyomtatott jelentésben (az első oldal fejléce, ha van ilyen). Gyakran használják nyomtatásához a fedőlapon a jelentés adatait kiválasztási kritériumokat, létrehozásának dátuma és ideje, stb
Oszlopfejléc fejezetcímek, nyomtatott jelentések tetején oldalt. A cím után az oldal (miután a cím az első oldalon). A több oszlop jelentést. nyomtatott minden oszlop. Gyakran használják nyomtatására mezőnevek.
Részletes részén nyomtatni minden egyes rekord (sor) az adatbázisba. Ez minden bizonnyal a legfontosabb rész a jelentést, és amely azon a fő hely a jelentésben. Meg kell tenni adattudatos nyomóalkatrészek, mint TQRDBText ebben a szakaszban.
Összefoglalás A nyomtatás után minden rétegének részlet, akkor nyomtassa ki a az összegek ebben a szakaszban.
Az utolsó szakasz Oldallábléc minden oldalon. Nyomtatás az utolsó oldal határozza meg az ingatlan Options.LastPageFooter.

Miután hozzáadott egy új szakasz a jelentés, akkor láthatjuk, hogyan vannak elhelyezve a tényleges nyomtatás. Azt látjuk, hogy a oldalfej kerül fel neki a következő rész címe, Oszlopfej és így tovább.

Típus minden rész apró betűkkel nyomtatva a bal alsó. Ez lehetővé teszi, hogy azonosítsa azokat a jelentésben. Ez a szöveg nem tartozik a zárójelentésben.
§ A komponens jelenik meg a jelentésben TQuickRep megjelennek abban a sorrendben, amelyben a nyomtatott. Segít megérteni, hogyan lesz nyomtatva. A leggyakoribb használata a szakasz a 10. ábrán látható, de nem lesz nagyon bonyolult, ha elkezd beírni egy alfejezetben és grupirovavat.
Méretek szakaszok
§ származik a vízszintes méretét TQuickRep alkatrészeket. Az Size.Width tulajdonságokat csak akkor kell használni, mint egy csak olvasható; A kísérlet a bennük más értékeket figyelmen kívül hagyja. Egyes oszlopok jelentése, a szélessége minden szakasz van beállítva, hogy az oldal szélessége mínusz balra és jobbra határokat. Alatt többoszlopos jelentés profilszélesség (Oszlopfejléc, Részlet, Sub részlet, csoport fejléc és lábléc Group) alkalmazkodik a rendelkezésre álló szélesség külön oszlopban
Azonban meg lehet változtatni a függőleges mérete részben. Keresés részén és átméretezése az egérrel, vagy megváltoztatja a tulajdonságait Size.Height.
Bekapcsolása és kikapcsolása szakaszok
Néha nem akar nyomtatásának kikapcsolásához egy bizonyos sávban. Ezt meg lehet tenni akár a tervezési idő vagy futás közbeni beállítás a TQRBand.Enabled tulajdonságot False.
Abban az időben a jelentés generáció, akkor is ideiglenesen letilthatja a nyomtatást szakaszt a eseménykezelő BeforePrint. Ez a kezelő egy paraméter PrintBand, amely akkor False letiltani nyomtatás - de csak egy ideig. Ez a funkció nagyon kényelmes a szervezet egy egyszerű szűrő:

eljárás TrepCusList.RepDetailBeforePrint
(Küldő: TQRCustomBand;
var PrintBand: logikai érték);
kezdődik
PrintBand: = CustTableTotalSales> 3000000;
végén;


Megjegyzés: Ha PrintBand False részletekre részben az értékek egy adott rekord nem tartalmazza a számítás aggregált TQRExr funkciók, mint a SUM függvény. Ez a viselkedés különbözik változatok QuickReport QuickReport 2 és 3.
Ha kikapcsolja a részét a Oldallábléc, az eredmény lesz a megjelenése az üres tér alján minden oldalon - Részletes rész nem használja ezt a helyet, QuickReport nem ellenőrzi a méret az oldalt minden alkalommal. Tehát, ha megváltoztatja a Enabled tulajdonságát Oldallábléc, majd hívja ResetPageFooterSize módszer az információk frissítéséhez.

// használja QRPrntr kap TQRPreviewInterface

TQRCustomPreviewInterface = osztály (TQRPreviewInterface)
nyilvános
függvény Show (AQRPrinter. TQRPrinter)
. TWinControl; felülbírálhatja;
működnek ShowModal (AQRPrinter. TQRPrinter)
. TWinControl; felülbírálhatja;
végén;

funkció TQRCustomPreviewInterface.Show (
AQRPrinter: TQRPrinter): TWinControl;
var
frm. TCustPreview;
kezdődik
FRM: = TCustPreview.Create (Application, AQRPrinter);
frm.Show;
Eredmény: = FRM;
végén;

működnek TQRCustomPreviewInterface.ShowModal (
AQRPrinter: TQRPrinter): TWinControl;
var
frm. TCustPreview;
kezdődik
FRM: = TCustPreview.Create (Application, AQRPrinter);
frm.ShowModal;
Eredmény: = FRM;
végén;

# 123; $ FIGYELMEZTETÉSEK OFF # 125;
TCustPreview = osztály (TForm)
QRPreview1: TQRPreview;
eljárás CustPreviewClose (Sender: TObject;
var Action: TCloseAction);
magán

fQRPrinter. TQRPrinter;
nyilvános

kivitelező létrehozása (AOwner TComponent .;
AQRPrinter. TQRPrinter); virtuális;
végén;
# 123; $ figyelmeztetések # 125;

kivitelező TCustPreview.Create (AOwner: TComponent;
AQRPrinter: TQRPrinter);
kezdődik
örökölt létrehozása (AOwner);
fQRPrinter: = AQRPrinter;
QRPreview1.QRPrinter: = AQRPrinter;
végén;

eljárás TCustPreview.CustPreviewClose (Sender: TObject;
var Action: TCloseAction);
kezdődik
fQRPrinter.ClosePreview (Self);
Action: = caFree;
végén;

Feljegyzése Vit: rövidített