|
Dynamische Auswahlmöglichkeiten per Loader-Query |
Hoch Zurück Vor |
|
Das letzte Beispiel (Benutzerinteraktion über Parametermasken) hat gezeigt, wie einfach es ist, Benutzereingaben über Parametermasken zu ermöglichen. Für die Auswahl der Parameter wurden statische Vorgaben angegeben. Das hat den Nachteil, dass je nach gewählten Parametern möglicherweise keine passenden Daten gefunden werden. Damit dies nicht passiert, können Sie die Vorgabewerte für Steuerelemente mit Daten aus der Datenbank befüllen. So ist sichergestellt, dass auch nur solche Werte gewählt werden können, für die Daten existieren.
In oben erwähntem Beispiel wurden in der Parametermaske ComboBoxen für die Auswahl des minimalen und des maximalen Alters verwendet. Die Auswahlmöglichkeiten wurden dabei statisch über die Eigenschaft ResultOption definiert. Eine andere Möglichkeit die wählbaren Werte zu definieren sind Loader-Queries. Hinter dieser Bezeichnung verstecken sich SQL-Abfragen, deren Ergebnis für Anzeige- und Rückgabewerte der ComboBox verwendet werden kann.
In diesem Beispiel wird, aufbauend auf das Template aus "Benutzerinteraktion über Parametermasken", ein Loader-Query dazu verwendet, die Vorgabewerte für Minimal- und Maximalalter aus der Datenbank auszulesen, so dass nur solche Werte ausgewählt werden können, für die auch Einträge in der Datenbank existieren.
1 Legen Sie zunächst eine Kopie des Templates "Personen im Alter von x bis y Jahren" an und öffnen Sie es zum Bearbeiten. Selbstverständlich können Sie auch das vorhandene Template bearbeiten, statt eine Kopie davon zu verändern. 2 Als Erstes muss die Loader-Query definiert werden: Markieren Sie dazu im Templateeditor unter Navigation den Punkt SQL-Abfragen und Scripte und klicken Sie dann im Menü unter SQL-Abfragen und Scripte auf den Punkt Neu.
3 Wählen Sie im Dialog Neue Abfrage/Neues Script den Punkt Loader-Query aus und bestätigen Sie die Auswahl mit OK.
4 Wählen Sie die neu angelegte Loader-Query in der Navigation über Basiseinstellungen / SQL-Abfragen und Scripte / Loader / LOAD_01 aus und geben Sie das folgende Script ein:
SELECT YEAR(CURDATE( )) - YEAR(gdatum) "ALTER" FROM adr GROUP BY 1 ORDER BY 1
Dieses Script berechnet das Alter aller Personen in der Adressdatenbank. Die Ergebnistabelle besteht aus einer Spalte, die die berechneten Alter aufsteigend sortiert enthält. 5 Nachdem die Loader-Query definiert ist, muss es nur noch den beiden ComboBoxen zugewiesen werden. Öffnen Sie dazu die Parametermaske über Basiseinstellungen / Parametermaske und markieren Sie die erste ComboBox mit einem Linksklick. Wählen Sie dann im Inspektor unter ResultLoadQuery die neu angelegt Loader-Query LOAD_01 aus.
6 Welche Werte angezeigt werden und welche Werte je nach Auswahl für den verknüpften Parameter verwendet werden, wird durch die Eigenschaften ResultLoadQueryCaption und ResultLoadQueryValue festgelegt. In diesem Beispiel sind Anzeige- und Rückgabewert beide über die Spalte ALTER zu wählen, also müssen Sie diese beiden Eigenschaften ebenfalls anpassen, indem Sie für beide den Wert ALTER eingeben.
7 Wiederholen jetzt Sie den letzten Schritt mit der zweiten ComboBox, damit auch diese die Werte aus der Datenbank bekommt. 8 Das war auch schon alles. Speichern Sie die gemachten Änderungen und klicken Sie auf Testen. Die Auswahlmöglichkeiten der beiden ComboBoxen enthalten jetzt nur noch Werte, für die auch Personen mit dem jeweiligen Alter in der Datenbank existieren.
|