FastReport Engine: Der Report-Erzeuger

Aus GEVITAS
Wechseln zu: Navigation, Suche

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.


2 Links