LightSwitch – Genauer hingeschaut Teil 1 (Teil 4)
Kommentare

Falls Sie die Neugier geplagt hat und Sie den zugehörigen Screen bereits ausgeführt haben, wird Ihnen eins aufgefallen sein: Er liefert keine Resultate. Zum aktuellen Zeitpunkt ist dies auch gut und

Falls Sie die Neugier geplagt hat und Sie den zugehörigen Screen bereits ausgeführt haben, wird Ihnen eins aufgefallen sein: Er liefert keine Resultate. Zum aktuellen Zeitpunkt ist dies auch gut und richtig so, denn es wurde zwar ein Parameter definiert und die Abfrage in Abhängigkeit dessen erstellt, allerdings hat der Parameter noch keinen Wert zugewiesen bekommen. Auch hier kann Abhilfe geschaffen werden, indem man zunächst dem Screen ein neues Data Item hinzufügt. Öffnen Sie hierfür den Screen und wählen aus dem Menü am oberen Fensterrand ADD DATA ITEM. Zur leichteren Unterscheidung vom eigentlichen Abfragenparameter MinDepartments nennen Sie die lokale Eigenschaft am besten MinDepartmentsProp. Nun öffnen Sie den Screen SearchDepartmentsHeadSinclair und wählen den Query-Parameter MinDepartments aus (Abb. 8). Im Eigenschaftenfenster können Sie nun unter PARAMETER VALUE die lokale Eigenschaft MinDepartmentsProp angeben, die Sie gerade definiert haben. Als Folge wird in der linksseitigen Hierarchieansicht der Elemente ein Pfeil vom Query-Parameter zur lokalen Eigenschaft angezeigt (Abb. 8), der symbolisiert, dass der Wert von MinDepartments von der Eigenschaft MinDepartmentsProp geliefert wird. 

Abb. 8: Zuweisung einer lokalen Eigenschaft als Wert eines Query-Parameters
Abb. 8: Zuweisung einer lokalen Eigenschaft als Wert eines Query-Parameters

Um das Ganze nun auszuprobieren, startet man die Applikation im Debug-Modus und schaut sich das Resultat an: immer noch leer für SearchDepartmentsHeadSinclair. Das liegt daran, dass der Parameter immer noch nicht gesetzt wurde – und das sollte nun über CUSTOMIZE SCREEN geändert werden (die Schaltfläche in der rechten oberen Ecke der Applikation). Es öffnet sich nach dem Klick auf die Schaltfläche ein Fenster mit der Strukturansicht des Layouts (das bereits aus dem Visual-Studio-Screen-Designmodus bekannt sein dürfte). Hier fügt man (Abb. 9) den Parameter MinDepartmentsProp ein und ändert dessen Typ von Label auf TextBox. Speichern Sie Ihre Änderungen. Ab jetzt können Sie als Benutzer das Minimum an Abteilungen definieren, für das Resultate angezeigt werden sollen. Im vorliegenden Fall müssten also Werte unter 2 die Abteilung Personnel zusammen mit deren Leiter John Sinclair anzeigen.

Abb. 9: Grafisches Hinzufügen von
Abb. 9: Grafisches Hinzufügen von „MinDepartmentsProp“ über Customize Screen

Codekonsumption inklusive

Damit sind wir noch nicht am Ende; bis hierhin wurden Abfragen erstellt, modifiziert, per Code erweitert und parametrisiert. Was jetzt noch dazu kommt: Abfragen sollen auch per Code konsumiert werden können. Erstellen Sie hierfür eine neue Abfrage für die Entität Department, die  AllDepartments heißen soll. Fügen Sie weder Filter noch Sortierung oder Parameter hinzu. Damit gibt diese Abfrage alle existierenden Abteilungen zurück (wir dürfen in unserem Fall zwei erwarten). Es stellt sich nun die Frage, wo die Ausführung einer Abfrage per Code tatsächlich sinnvoll sein könnte. Schließlich werden die Resultate stets per Designer an die Screens gebunden, sodass ein manuelles Eingreifen nicht unbedingt auf den ersten Blick notwendig erscheint.

Ein Beispiel, wo eine solche Ausführung nützlich sein könnte, ist die angepasste Validierung von Feldern eines Screens. Während die meisten Felder über eine Standardvalidierung verfügen (z. B. gültige E-Mail-Adressenformate für Felder des komplexen Datentyps EmailAddress), bedarf es in manchen Fällen einer den Benutzerbedürfnissen angepasste Lösung. In unserem Fall ist der Einsatz einer angepassten Validierung beim Feld MinDepartmentsProp sinnvoll. Dabei sollte die Benutzereingabe auf Werte beschränkt werden, die auch tatsächlich existieren. Mit anderen Worten: Es ist sinnlos, wenn ein Benutzer ein Minimum von Abteilungen definiert, das den Wert der tatsächlich existenten Abteilungen überbietet. Wir können also per Code die Anzahl aller Abteilungen ermitteln und die Validierung des Feldes MinDepartmentsProp anhand dieses Wertes vornehmen.

Abb. 10: Hinzufügen angepasster Validierung zu einer Komponente
Abb. 10: Hinzufügen angepasster Validierung zu einer Komponente
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -