Home » Tutorials » Third-Party-Komponenten » Quick Reports

Quick Reports

Berechnete Felder verwenden

Es gibt zwei Wege, mit berechneten Feldern in Reports umzugehen. Der erste Weg ist, berechnete Felder in Ihrer Datenbank zu erzeugen, wenn Sie Ihr Datenmodul einrichten. Wenn Sie für Ihr Projekt ein Datenmodul verwenden, verwenden Sie es ganz bestimmt auch in Ihren Quick Reports. Dadurch haben Sie einen Platz zur Verwaltung Ihrer Daten und können die Wiederverwendbarkeit maximieren. Der andere Weg ist die Verwendung der QRExpr-Komponente.
Da die Erstellung berechneter Felder in einer Tabelle den Rahmen unseres Tutorials sprengt, werde ich mich auf die Verwendung der QRExpr-Komponente konzentrieren. Diese Komponente ist ziemlich komplex und vollständig in ihrem Aufbau, aber wie viele Teile von QR hat sie ihre Tücken. Das Ergebnisbild im Ausdruck-Erzeuger ist das Memo-Feld am unteren Rand des Dialogs. Sie erzeugen den Ausdruck, indem Sie ein Item in jeder der Abschnitte auswählen und dort die Add-Taste drücken. QRExpr hat vier Abschnitte:

Constant: Dieser Abschnitt wird verwendet, um mit einer Zahl oder einem String in einer Gleichung umzugehen. Lassen Sie uns z. B. sagen, Sie müssten ein Feld mit einer Zahl multiplizieren, um Ihr berechnetes Feld zu bekommen. Sie würden die Zahl (.05) in das Edit-Feld eingeben. Lassen Sie die Dropdown-Box auf Numeric und drücken den Add-Button. Dies fügt die Zahl in das untere Memo-Feld ein.

Operators: Dieser Abschnitt wird, wie der Abschnitt Constant, dazu verwendet, Operatoren einem Feld hinzuzfügen. Indem Sie z.B. den *-Button drücken, fügen Sie das * der Gleichung hinzu, die Sie mit der Zahl .05 begonnen haben. Der Operator-Abschnitt verhält sich sehr ähnlich wie ein Taschenrechner mit der Fähigkeit, mit Klammern und Wahrheitswertvergleichen in Ihrer Gleichung genauso wie anderen mathematischen Funktionen umzugehen.

Data Field: Der Data Field-Abschnitt erlaubt es Ihnen, ein Feld aus irgend einer der im Report verwendeten Tabellen auszuwählen. Dafür haben Sie eine Dataset-Dropdownbox, um Ihre Tabelle auszuwählen, und eine Listbox, um das Feld auszuwählen. Eine Falle: Wenn Sie einen Ausdruck zusammenbauen, kehrt die Auswahl jedes Mal, wenn Sie etwas dem Ausdruck hinzufügen, an den Anfang der Tabellenliste zurück. Achten Sie deshalb darauf, dass Sie die richtige Tabelle ausgewählt haben, wenn Sie den Add-Button drücken. Um unser Beispiel fortzusetzen, können Sie nun ein Feld auswählen, das mit .05 multipliziert werden soll, und drücken die Add-Taste, um sie dem Memo-Feld hinzuzufügen. Wenn Sie nun den OK-Button drücken, um den Dialog zu schließen, können Sie Ihren Ausdruck in der Eigenschaft Expression der Komponente sehen. Indem Sie erneut auf die drei Punkte klicken, erhalten Sie den Ausdruck wieder im Expression Builder, Sie können jedoch nicht auf ihn zugreifen, um ihn zu bearbeiten. Der einzige Weg, eine Gleichung, die Sie erzeugt haben, zu bearbeiten, ist das vorsichtige Verändern des Strings in der Expression-Eigenschaft. Andernfalls müssen Sie die Gleichung löschen und neu beginnen.

Function: Diese Kategorie enthält eine große Auswahl verfügbarer Optionen. Einige werden wohl sehr selten verwendet werden. Andere können im Code vervielfältigt werden, ohne die Expression-Komponente zu verwenden. Aber einige sind essenziell. Hier, was verfügbar ist:

Funktion Beschreibung Verwendung
Average Berechnet den Durchschnitt einer Spalte Avg(Table1Field
Copy Erzeugt einen Teilstring von Daten Copy(Table1Field,1,2)
Count* Erhöht einen Zähler Kann als Datensatzzähler verwendet werden
Date* Wandelt das aktuelle Datum in einen String um Kann verwendet werden, um das aktuelle Datum in einer Spalte auszugeben
False* Verwendet in Boolean-Gleichungen Verwendet in Building Statements
FormatNumeric Setzt eine Maske auf ein Feld FormatNumeric(‚###,###‘,Table1Field)
Frac Gibt den Nachkommateil zurück Gibt alles hinter dem Dezimalpunkt zurück
If Verwendet in Gleichungen If(Bedingung, Wahres Ergebnis, Falsches Ergebnis)
Int Gibt eine Ganzzahl zurück Schneidet alles hinter dem Dezimalzeichen ab
Lower Wandelt einen String in Kleinbuchstaben um Lower(Table1Field)
Max Berechnet den größten Wert einer Spalte Max(Table1Field)
Min Berechnet den kleinsten Wert einer Spalte Min(Table1Field)
Pretty Wandelt das erste Zeichen in einen Großbuchstaben um Pretty(Table1Field
Sqrt Errechnet die Quadratwurzel Sqrt(Table1Field)
Str Wandelt eine Zahl in einen String um Str(Number)
Time* Gibt die aktuelle Zeit als String zurück Kann verwendet werden, um einen Zeitstempel zu drucken
True* Verwendet in Boolean-Gleichungen Verwendet in Building Statements
TypeOf Gibt den Datentyp eines Ausdrucks zurück Nicht sicher, wofür das verwendet werden kann
Upper Wandelt einen String in Großbuchstaben um Upper(Table1Field)

Hinweis: Funktionen mit Sternchen (*) sind dafür bestimmt, in if-Ausdrücken verwendet zu werden. Das Verwendungsbeispiel erklärt alle anderen Möglichkeiten.
Mit der If-Funktion zu arbeiten, kann ziemlich frustrierend sein, weil Sie nicht die aktuellen Aussage, die Sie bauen, erhalten können. Denken Sie daran, dass Sie den String außerhalb der Dialogbox bearbeiten können. Beenden Sie deshalb einfach den Expression Builder, wenn nötig, und machen Sie vorsichtig Ihre Änderungen.

TIPP 8

Verwenden Sie die Eigenschaft Mask, um Formatierungen Ihrer berechneten Ausdrücke einzusetzen. Mask verwendet ähnliche Zeichen wie die Funktion FormatFloat. Wichtige Masken sind:
$###,##,00 für Währung, EUR##0.00 für Euro.
Sie können auch unterschiedliche Masken für positive und negative Zahlen erstellen, indem Sie dazwischen ein Semikolon setzen. Zum Beispiel:
$##0.00;($##0.00);