Complex Reference
Der "Complex Referenz" Knopf kann verwendet werden, um ein anderes Formular zu öffnen und einen SQL-Filter zu setzen. Dieser Filter bestimmt, welche Datensätze im Formular angezeigt werden sollen, basierend auf bestimmten Bedingungen.
Zum Beispiel könnte man einen SQL-Filter setzen, um nur bestimmte Kundenaufträge anzuzeigen, die innerhalb eines bestimmten Zeitraums oder für einen bestimmten Kunden erstellt wurden. Dies kann hilfreich sein, um komplexere Datenmengen zu organisieren und zu filtern, um nur die relevanten Informationen zu sehen.
Das "Complex Reference" Steuerelement bietet eine erweiterte Funktionalität im Vergleich zum "Reference" Steuerelement, indem es die Möglichkeit bietet, komplexere Beziehungen zwischen mehreren Tabellen abzubilden.
Steuerelement spezifische Eigenschaften
DetailTable
Gibt die Tabelle an, die geöffnet werden soll.
Filter
Definiert den Filter, der ausgeführt wird. Diese entspricht einer SQL Where-Bedingung (Der Teil nach dem WHERE)
Der Filter ist keine SELECT Bedingung. Der Filter darf also nicht mit "select * from" oder ähnlichem beginnen
Im Filter können Werte des aktuellen Datensätze eingesetzt werden in dem man die Feldnamen in eckige Klammern setzt (Platzhalter). Die Feldnamen müssen hierbei in Großbuchstaben angegeben werden. Textwerte werden beim einsetzen hierbei vom Programm automatisch in Anführungszeichen gesetzt.
Beispiel 1:
fid_street={FID}
Beispiel 2:
fid in (select fid from country where fid={FID_COUNTRY})
Wenn Sie Text Feldwerte ohne Anführungszeichen einsetzen wollen kann folgende Syntax verwendet werden:
{$FELDNAME$}
Dies können Sie nutzen wenn Sie z.B. den Tabellennamen der Abfrage dynamisch aus einem Feld setzen wollen.
Beispiel:
fid_parent in (select fid from {$TABLE_NAME_VON$} where fid_child={FID})
Ab Version 24.2.95 steht ein neuer Platzhalter {!FILTER!} zur Verfügung. Dieser fügt in den SQL den aktuellen Filter SQL (where Statement) des Formulares ein. Dieser kann bei anderen Steuerelementen wie SQLLabel etc genutzt werden.
Secondary Filter (Zweiter Filter)
Ab Version 24.2.95
Der "SecondaryFilter" funktioniert gleich wie "Filter".
Wird "SecondaryFilter" ausgefüllt erscheint ein zweiter Knopf mit einem Pfeil.
Hier kann ein zweiter Filter angegeben werden der beim drücken dieses Pfeil Knopfes ausgeführt werden soll.
Damit kann man z.B. unter anderem in Verbindung mit dem neuen Platzhalter {!FILTER!} einen Projektionsknopf simulieren wie dieser bereits auch beim Referenz Steuerelement bekannt ist.
Beispiel für einen SecondaryFilter der eine Projektions erstellt
fid in (select fid_flst from rel_flst_baum where fid_baum in (select fid from baum where {!FILTER!}))