FastReport Engine: Der Report-Erzeuger: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Allgemeines == Die sog. FastReport-"Engine" ist der Kern von FastReport. Die Engine ist der Programmteil, der der report ausführt, also die Ausgabe erzeug…“)
 
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
== Allgemeines ==
 
== Allgemeines ==
  
Die sog. FastReport-"Engine" ist der Kern von FastReport. Die Engine ist der Programmteil, der der report ausführt, also die Ausgabe erzeugt.
+
Die sog. FastReport-"Engine" ist der '''Kern von FastReport'''. Die Engine ist der Programmteil, der den Report '''ausführt''', also die Ausgabe erzeugt.
  
Die Enging stellt einige wichtige Funktionen und Variablen zur Verfügung, die man zur Ausführung von speziellen Aufgaben benutzen kann.
+
Die Engine stellt einige wichtige Eigenschaften (Variablen) und Methoden (Funktionen) zur Verfügung, die man zur Ausführung von '''speziellen Aufgaben''' benutzen kann.
  
  
Zeile 15: Zeile 15:
 
|CurColumn
 
|CurColumn
 
|Integer
 
|Integer
|the index of the current column in a multi-columned report
+
|Der Index der aktuellen Spalte in einem mehrspaltigen Report. Dieser Eigenschaft kann auch ein Wert zugewiesen werden!
a value can be assigned to this property.
 
 
|- valign="top"
 
|- valign="top"
 
|CurX
 
|CurX
 
|Extended
 
|Extended
|the current print position on the X-axis
+
|Die aktuelle Druck-Position in der X-Achse (horizontal) wird hier ausgegeben. Dieser Eigenschaft kann auch ein Wert zugewiesen werden!
a value can be assigned to this property.
 
 
|- valign="top"
 
|- valign="top"
 
|CurY
 
|CurY
 
|Extended
 
|Extended
|the current print position on the Y-axis
+
|Die aktuelle Druck-Position in der Y-Achse (vertikal) wird hier ausgegeben. Dieser Eigenschaft kann auch ein Wert zugewiesen werden!
a value can be assigned to this property.
 
 
|- valign="top"
 
|- valign="top"
 
|DoublePass
 
|DoublePass
 
|Boolean
 
|Boolean
|equals “True” if the report is a two-pass one
+
|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...
analogous to Report.EngineOptions.DoublePass.
+
...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.
 
|- valign="top"
 
|- valign="top"
 
|FinalPass
 
|FinalPass
 
|Boolean
 
|Boolean
|equals “True” when in last pass of a two-pass report
+
|Enthält “True”, wenn der Report im '''zweiten Durchlauf''' erstellt wird.
 +
 
 
|- valign="top"
 
|- valign="top"
 
|PageHeight
 
|PageHeight
 
|Extended
 
|Extended
|printable region’s height, in pixels
+
|Enthält die druckbare Höhe in Pixeln.
 
|- valign="top"
 
|- valign="top"
 
|PageWidth
 
|PageWidth
 
|Extended
 
|Extended
|printable region’s width, in pixels
+
|Enthält die druckbare Breite in Pixeln.
 
|- valign="top"
 
|- valign="top"
 
|StartDate, StartTime
 
|StartDate, StartTime
 
|TDateTime
 
|TDateTime
|time of report running, the same as the <Date> und <Time> system variable
+
|Datum/Zeit, in der der Report ausgeführt wird. Identisch mit der Variable <Date> bzw.  <Time>.
 
|- valign="top"
 
|- valign="top"
 
|TotalPages
 
|TotalPages
 
|Integer
 
|Integer
|the number of pages in a report, the same as the < TotalPages> system variable the report should be a two-pass one, if this variable is used
+
|Die Anzahl der Seiten eines Reports, identisch mit der Variablen < TotalPages>. Der Report muss ein Zwei-Pass-Report sein!
 
|- valign="top"
 
|- valign="top"
 
|SecondScriptcall
 
|SecondScriptcall
 
|Boolean
 
|Boolean
|flag  returning  'repeat-call' status of an event (in some cases an event can be called repeatedly during grouping) if  True then the script  has already been called
+
|Dieser Wert gibt den 'Repeat-call'-Status eines Ereignisses zurück.
 +
Wenn '''True''' wurde der Script schon einmal aufgerufen.
 
|- valign="top"
 
|- valign="top"
 
|
 
|
 
|
 
|
 
|
 
|
|}  
+
|}
 +
 
 +
=== Methoden ===
 +
 
 +
{| class="wikitable" style="text-align: left;"
 +
!Methode
 +
!Beschreibung
 +
|- valign="top"
 +
|procedure AddAnchor
 +
(const Text: String)
 +
|Fügt Text zu einem Anker hinzu.
 +
|- valign="top"
 +
|procedure NewColumn
 +
|Erzeugt eine neue Spalte in einem mehrspaltigen Report. Nach der letzen Spalte wird automatisch ein Seitenwechsel eingefügt.
 +
|- valign="top"
 +
|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'''!
 +
 
 +
|- valign="top"
 +
|procedure ShowBand(Band: TfrxBand)
 +
|Zeigt ein Band mit dem angegebenen Namen an. Die Druckposition “CurY” wird automatisch erhöht.
 +
|- valign="top"
 +
|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.
  
  
+
|- valign="top"
Methods:
+
|function GetAnchorPage (const Text: String): Integer
+
|Bringt die Seite zurück, auf die der Anker gesetzt wurde.
Method
+
|- valign="top"
Description
+
|
procedure AddAnchor
+
|
(const Text: String)
+
|- valign="top"
adds “Text” to the list of anchors
+
|
see more below
+
|
procedure NewColumn
+
|}
creates a new column in a multi-column report
+
 
after the last column a page break is automatically
+
 
inserted
+
== Links ==
procedure NewPage
+
 
creates a new page (page break)
+
* [[FastReport Tipps und Tricks]]
procedure ShowBand
+
 
(Band: TfrxBand)
+
* [[FastReport Seitenformat]]
displays a band with a specified name
+
 
after displaying the band the “CurY” position is
+
* [[FastReport Daten, Tabellen und Felder]]
automatically incremented
+
 
function FreeSpace: Extended
+
* [[FastReport Bands]]
returns height of the white space left on page in pixels.
+
 
function GetAnchorPage
+
* [[FastReport Objekte und Elemente eines Reports]]
(const Text: String): Integer
+
 
returns the page number where the specified anchor
+
* [[FastReport: Abhängige Formatierung von Feldern]]
has been placed
+
 
 +
* [[FastReport Farb-Konstanten]]
 +
 
 +
* [[FastReport Namensgebung der Datenbank-Tabellen und -Felder]]
 +
 
 +
* [[FastReport: Summen im Report bilden]]
 +
 
 +
* [[FastReport Engine: Der Report-Erzeuger]]
 +
 
 +
* [[Ladeliste/Packliste mit FastReport]]
 +
 
 +
* [[FastReport Beispiel Auftragsformular Struktur der Positionen]]
 +
 
 +
* [//youtu.be/VDTSGf4oIFA Video FastReport Teil 1: Allgemeines]
 +
 
 +
* [//youtu.be/M3keXvU3JIY Video FastReport Teil 2: Erstes Kennenlernen]
 +
 
 +
* [//youtu.be/ZEa9te2nyco Video FastReport Teil 3: Den ersten Report erstellen]
 +
 
 +
* [//youtu.be/IrpqarC0KEc Video FastReport Teil 4: Summen im Report erstellen]
 +
 
 +
* [//youtu.be/5krqu5oSuGU Video FastReport Teil 10: Vererbung, Erstellen und Verwenden eines Basis-Reports]
 +
 
 +
* [//www.fast-report.com/de/ Homepage von FastReport]
 +
 
 +
* [[Etikettendruck Allgemeines]]
 +
 
 +
* [[GEVITAS Label-Print Installation]]
 +
 
 +
* [[GEVITAS-Carnet]]

Aktuelle Version vom 22. Dezember 2015, 00:14 Uhr

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