Beliebige Datenbank-Abfragen in FastReport: Unterschied zwischen den Versionen
Zeile 26: | Zeile 26: | ||
;ADO-Query | ;ADO-Query | ||
− | :Greift über eine SQL-Abfrage auf beliebige Tabellen der Datenbank zu. Man kann/muss die SQL-Abfrage angeben und kann die Daten über eine "Where"-Klausel mit einem Parameter filtern, z.B. die Auftragsdaten nach der Auftragsnummer. Diese Methode ist sehr flexibel, erfordert aber Datenbank- und SQL-Kenntnisse! | + | :Greift über eine SQL-Abfrage auf beliebige Tabellen der Datenbank zu. Man kann/muss die SQL-Abfrage angeben und kann die Daten über eine "Where"-Klausel mit einem Parameter filtern, z.B. die Auftragsdaten nach der Auftragsnummer. Diese Methode ist sehr flexibel, erfordert aber Datenbank- und SQL-Kenntnisse! |
+ | :Dieser Artikel beschreibt diese Methode. | ||
+ | |||
+ | == Einfügen einer Query in die Data-Seite == | ||
+ | |||
+ | Dazu zieht man einfach das Query-Objekt aus der Leiste links auf die Data-Seite. Die Query hat nun folgende wichtige Eigenschaften: | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="text-align: left;" | ||
+ | !Eigenschaft | ||
+ | !Beschreibung | ||
+ | |- valign="top" | ||
+ | |Database | ||
+ | |Legt die Verbindung zur Datenbank fest. Standardmäßig wird die Verbindung der Standard-Tabellen des Reports verwendet. Alternativ dazu könnte man auch ein Connection-Objekt aus der Leiste links auf die Seite "Data" ziehen und dort eine eigene Datenbank-Verbindung aufbauen. | ||
+ | |- valign="top" | ||
+ | |FieldAliases | ||
+ | |Hier könnte man den Datenbank-Felder einen ausführlichen Alias-Namen vergeben, um sie besser zu verstehen. | ||
+ | |- valign="top" | ||
+ | |Filter | ||
+ | |Wird bei einer Query normalerweise nicht benötigt, weil die SQL-Abfrage ein "where" beinhaltet. Bei einem Table-Objekt kann man den Filter jedoch verwenden, um nur bestimmte Daten aus den Tabelle zu ziehen. | ||
+ | |- valign="top" | ||
+ | |Master | ||
+ | |Optional eine Möglichkeit, eine 1:n-Beziehung zu einer Master-Tabelle herzustellen. | ||
+ | |- valign="top" | ||
+ | |Params | ||
+ | |Gibt die Möglichkeit, Parameter aus der SQL-Abfrage mit einem Wert oder einem Feld zu verknüpfen. '''Sehr wichtige Funktion!'''. | ||
+ | Parameter im SQL-Text beginnen mit einem Doppelpunkt, dahinter wird ein eindeutiger Parameter-Name eingegeben. Mit dem '''...''' Button in dieser Zeile kann man die Parameter mit einem Wert oder einem beliebigen Feld des Reports verknüpfen, z.B. mit dem Feld "Auftragsnummer". Damit bezieht sich das Abfrage -Ergebnis auf Daten mit dieser Auftragsnummer! | ||
+ | |- valign="top" | ||
+ | |SQL | ||
+ | |Hier wird der SQL-Text für die Datenabfrage angegeben. Er legt fest, welchen Daten aus der Datenbank abgerufen werden sollen. Sinnvollerweise enthält der SQL-Text eine "Where"-Klausel mit einem Parameter-Feld (":ParamName"). | ||
+ | |- valign="top" | ||
+ | | | ||
+ | | | ||
+ | |} |
Version vom 27. Juni 2025, 10:49 Uhr
1 Allgemeines
Das Druck-Modul "GevitasFormPrint" stellt dem Report-Editor alle Daten zur Verfügung, die für das jeweilige Formular gerade sinnvoll sind, z.B.
- bei einem Angebot die Auftragskopf-Daten, Auftragspositionen usw.
- bei einem Werkstatt-Auftrag die Reparatur-Daten, Kunden-Daten, Auftrags-Daten usw.
- Datenbank-Kenntnisse sind hierfür nicht erforderlich!
Manchmal will man jedoch weitere Daten im Report haben, die das Druck-Modul nicht berücksichtigt. Für diesen Fall kann man einen Report um weitere, beliebige Datenbank-Abfragen erweitern.
Dieser Artikel zeigt, wie einfach das geht.
- Allerdings muss man sagen, dass man hierfür Datenbank-Kenntnisse haben sollte und die SQL-Sprache kennen sollte!
2 Die Seite Data im Report
in jedem Report gibt es eine Seite "Data" in dem Register links oben.
Hier kann man zusätzliche Datenquellen unterbringen, die auf Tabellen der Datenbank zugreifen:
- ADO-Table
- Greift direkt auf eine Tabelle der Datenbank zu. Man kann/muss den Namen der Tabelle angeben und kann die Daten filtern, z.B. die Auftragsdaten nach der Auftragsnummer.
- ADO-Query
- Greift über eine SQL-Abfrage auf beliebige Tabellen der Datenbank zu. Man kann/muss die SQL-Abfrage angeben und kann die Daten über eine "Where"-Klausel mit einem Parameter filtern, z.B. die Auftragsdaten nach der Auftragsnummer. Diese Methode ist sehr flexibel, erfordert aber Datenbank- und SQL-Kenntnisse!
- Dieser Artikel beschreibt diese Methode.
3 Einfügen einer Query in die Data-Seite
Dazu zieht man einfach das Query-Objekt aus der Leiste links auf die Data-Seite. Die Query hat nun folgende wichtige Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
Database | Legt die Verbindung zur Datenbank fest. Standardmäßig wird die Verbindung der Standard-Tabellen des Reports verwendet. Alternativ dazu könnte man auch ein Connection-Objekt aus der Leiste links auf die Seite "Data" ziehen und dort eine eigene Datenbank-Verbindung aufbauen. |
FieldAliases | Hier könnte man den Datenbank-Felder einen ausführlichen Alias-Namen vergeben, um sie besser zu verstehen. |
Filter | Wird bei einer Query normalerweise nicht benötigt, weil die SQL-Abfrage ein "where" beinhaltet. Bei einem Table-Objekt kann man den Filter jedoch verwenden, um nur bestimmte Daten aus den Tabelle zu ziehen. |
Master | Optional eine Möglichkeit, eine 1:n-Beziehung zu einer Master-Tabelle herzustellen. |
Params | Gibt die Möglichkeit, Parameter aus der SQL-Abfrage mit einem Wert oder einem Feld zu verknüpfen. Sehr wichtige Funktion!.
Parameter im SQL-Text beginnen mit einem Doppelpunkt, dahinter wird ein eindeutiger Parameter-Name eingegeben. Mit dem ... Button in dieser Zeile kann man die Parameter mit einem Wert oder einem beliebigen Feld des Reports verknüpfen, z.B. mit dem Feld "Auftragsnummer". Damit bezieht sich das Abfrage -Ergebnis auf Daten mit dieser Auftragsnummer! |
SQL | Hier wird der SQL-Text für die Datenabfrage angegeben. Er legt fest, welchen Daten aus der Datenbank abgerufen werden sollen. Sinnvollerweise enthält der SQL-Text eine "Where"-Klausel mit einem Parameter-Feld (":ParamName"). |