FastReport Engine: Der Report-Erzeuger
Inhaltsverzeichnis
1 Allgemeines
Die sog. FastReport-"Engine" ist der Kern von FastReport. Die Engine ist der Programmteil, der den Report ausführt, also die Ausgabe erzeugt.
Die Engine stellt einige wichtige Eigenschaften (Variablen) und Methoden (Funktionen) zur Verfügung, die man zur Ausführung von speziellen Aufgaben benutzen kann.
1.1 Eigenschaften
Eigenschaft | Typ | Beschreibung |
---|---|---|
CurColumn | Integer | Der Index der aktuellen Spalte in einem mehrspaltigen Report. Dieser Eigenschaft kann auch ein Wert zugewiesen werden! |
CurX | Extended | Die aktuelle Druck-Position in der X-Achse (horizontal) wird hier ausgegeben. Dieser Eigenschaft kann auch ein Wert zugewiesen werden! |
CurY | Extended | Die aktuelle Druck-Position in der Y-Achse (vertikal) wird hier ausgegeben. Dieser Eigenschaft kann auch ein Wert zugewiesen werden! |
DoublePass | Boolean | Enthält “True”, wenn der Report ein Zwei-Pass-Report ist, d.h. wenn die entsprechende Report-Option eingeschaltet ist. Ein Zwei-Pass-Report wird benötigt, wenn man...
...Summen aus dem Fuss im Kopf darstellen will ...die "Variable Seite x von n" verwendet will. In diesem Fall wird der Report zuerst komplett durchgerechnet und sozusagen im Stillen aufgebaut. Dann erst im zweiten Durchlauf wird der Report ausgegeben. Analog zu der Report-Option Report.EngineOptions.DoublePass. |
FinalPass | Boolean | Enthält “True”, wenn der Report im zweiten Durchlauf erstellt wird. |
PageHeight | Extended | Enthält die druckbare Höhe in Pixeln. |
PageWidth | Extended | Enthält die druckbare Breite in Pixeln. |
StartDate, StartTime | TDateTime | Datum/Zeit, in der der Report ausgeführt wird. Identisch mit der Variable <Date> bzw. |
TotalPages | Integer | Die Anzahl der Seiten eines Reports, identisch mit der Variablen < TotalPages>. Der Report muss ein Zwei-Pass-Report sein! |
SecondScriptcall | Boolean | Dieser Wert gibt den 'Repeat-call'-Status eines Ereignisses zurück.
Wenn True wurde der Script schon einmal aufgerufen. |
1.2 Methoden
Methode | Beschreibung |
---|---|
procedure AddAnchor
(const Text: String) |
Fügt Text zu einem Anker hinzu. |
procedure NewColumn | Erzeugt eine neue Spalte in einem mehrspaltigen Report. Nach der letzen Spalte wird automatisch ein Seitenwechsel eingefügt. |
procedure NewPage | Erzeugt einen Seitenwechsel. Dazu werden die Fuss-Bereiche auf dieser und die Kopf-Bereiche auf der nächsten erzeugt.
Beispiel: procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent); begin // Dieser Code wird ausgeführt, BEVOR das Positionen-Gruppenkopf-Band (die Kapitel-Überschrift) ausgegeben wird. // Wenn das Kennzeichen "Seitenwechsel Vorher" gesetzt ist: if <Positionen."Seitenwechsel_0Nein_1Vorher_2Nachher"> = 1 then Engine.NewPage; // Neue Seite, Seitenkopf usw. drucken end; Hinweis: Das Feld heißt wirklich Seitenwechsel_0Nein_1Vorher_2Nachher! |
procedure ShowBand(Band: TfrxBand) | Zeigt ein Band mit dem angegebenen Namen an. Die Druckposition “CurY” wird automatisch erhöht. |
function FreeSpace: Extended | Bringt die Höhe des freien Bereichs der Seite in Pixeln zurück.
Beispiel: procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent); begin if Engine.FreeSpace > ReportSummary1.Height then Engine.CurY := Engine.CurY + Engine.FreeSpace - ReportSummary1.Height; end; Versetzt ein Band an den unteren Rand der Seite, wenn dort noch genügend Platz vorhanden ist.
|
function GetAnchorPage (const Text: String): Integer | Bringt die Seite zurück, auf die der Anker gesetzt wurde. |