1. Home
  2. Docs
  3. Handbuch FastReport
  4. Reporterstellung
  5. Darstellung-Ausdrücke

Darstellung-Ausdrücke

Eine der wichtigsten Besonderheiten dieses universellen Objektes, ist die Möglichkeit nicht nur statische Text anzuzeigen, sondern auch Ausdrücke. Diese können im Objekt mit dem Text vermischt werden. Schauen wir uns ein einfaches Beispiel an, in dem wir folgende Textzeile in das Objekt “Text” einfügen:

Hello, World! Today is [DATE].

Wenn wir den Report jetzt erstellen, sehen wir folgendes:

Hello, World! Today is 01.01.2004.

Was ist passiert? Während der Reporterstellung hat FastReport im Text einen Ausdruck entdeckt (in den eckigen Klammern) und hat dessen Bedeutung in den Text eingebaut. Selbstverständlich ohne die eckigen Klammern. Das Objekt “Text” kann eine beliebige Anzahl von Ausdrücken enthalten, vermischt mit dem gewöhnlichen Text. Die Klammern können sowohl Ausdrücke als auch einzelne Variablen enthalten z.B. [1+2*(3+4)]. Die Ausdrücke können ebenso Konstanten, Variablen, Funktionen und DB Felder enthalten.. Diese Möglichkeiten werden wir im späteren Verlauf näher betrachten.

Also erkennt FastReport automatisch Ausdrücke, wenn diese in eckigen Klammern stehen. Was jedoch ist, wenn unser Text eckige Klammern enthält, wir aber nicht wollen, das diese als Ausdruck erkannt werden? z. B. wollen wir diesen Text einfügen:

a[1] := 10

FastReport versteht die [1] als Ausdruck und macht folgendes:

a1 := 10 was uns selbstverständlich nicht zufrieden stellt. Eine der Möglichkeiten das zu vermeiden ist, die Ausdruckerkennung zu deaktivieren. Einfach die Eigenschaft AllowExpressions im Inspektor oder „Ausdrücke erlauben“ im Kontextmenü ausschalten. Dadurch werden Ausdrücke im Text ignoriert.

Manchmal braucht man jedoch Ausdrücke und Text in eckigen Klammern z.B.:

a[1] := [myVar]

Das Deaktivieren der Ausdrücke erlaubt das Einfügen der eckigen Klammern, verhindert jedoch die Bearbeitung der Ausdrücke. In diesem Fall erlaubt FastReport andere Symbole um Ausdrücke zu kennzeichnen. Diese Eigenschaft besitzt das Objekt ExpressionDelimiters, welches als Standardeinstellung „[,]“ hat. In unseren Fall ersetzen wir nun die Klammer durch:

a[1] := <myVar>

Die Eigenschaft ExpressionDelimiters muss dazu auf „<,>“ umgestellt werden. Das Komma trennt in dabei das öffnende Symbol von dem schließenden. Es gibt jedoch eine Beschränkung. Man darf nicht für das Öffnen und das Schließen der Klammern dasselbe Symbol verwenden. z.B. „%,%“ . Man kann mehrere Symbole einfügen z.B. „<%,%>“. Dies würde wie folgt aussehen:

a[1] := <%myVar%>