Abhängigkeiten

In den folgenden Ansichtselementen von Intrexx werden Datensätze aufgelistet: Diese Elemente können in Abhängigkeit von anderen Kontrollen gefiltert werden. Alle Kontrollen einschließlich der einzelnen Applikationsseiten, die JavaScript fähig sind, können als auslösende Kontrollen für eine Abhängigkeit herangezogen werden. So kann z.B. eine Auswahlliste so konfiguriert werden, dass ihre Einträge gefiltert werden, sobald ein Ereignis bei einer anderen, auslösenden Kontrolle eintritt. Die abhängige Auswahlliste zeigt dann z.B. nur die Hotels an, die in der aktuell gewählten Stadt zu finden sind, oder nur die Produkte in der ausgewählten Warengruppe.

Untergeordnete Datengruppe

Daten mit einer Eltern-Kind-Beziehung, wie z.B. Warengruppen und Unterwarengruppen, können in Intrexx ohne jeden Programmieraufwand mit Hilfe von untergeordneten Datengruppen abgebildet werden.



In unserem Beispiel soll in einer Datengruppe Produkt bei der Anlage eines neuen Produkts eine Warengruppe aus einer Auswahlliste ausgewählt werden können. Die zweite Auswahlliste Unterwarengruppe soll dabei nur die Unterwarengruppen anzeigen, die in der ausgewählten Warengruppe enthalten sind.



Dazu wird auf der Eingabeseite Produkt neben den Eingabefeldern für die Artikeldaten eine Auswahlliste Warengruppe angelegt, die alle Warengruppen aus der Datengruppe Warengruppe auflistet. Eine zweite Auswahlliste mit dem Titel Unterwarengruppe bezieht ihre Einträge aus der Datengruppe Unterwarengruppe.



Die nötigen Einstellungen werden im Eigenschaftendialog der abhängigen Auswahlliste Unterwarengruppe auf dem Reiter Abhängigkeiten gesetzt.



Mit der Einstellung Liste initial ohne Einträge anzeigen wird die Auswahlliste beim Laden der Seite ohne Einträge geladen. Mit Abhängigkeit hinzufügen wird eine neue Abhängigkeit definiert. Sind bereits Abhängigkeiten auf der aktuellen Seite definiert, so können diese in der Auswahlliste ausgewählt werden, sofern die Datengruppe des Filters der Quelldatengruppe der Kontrolle entspricht. Damit wird die gewählte Abhängigkeit für die Kontrolle wirksam. Mit Klick auf Abhängigkeit entfernen werden bestehende Abhängigkeiten wieder gelöscht. Sie stehen damit auch nicht mehr für andere Kontrollen zur Verfügung. Die Eigenschaften bestehender Abhängigkeiten können mit Klick auf Abhängigkeit bearbeiten geändert werden.



Legen Sie zunächst einen sprechenden Titel und dann die auslösende Kontrolle fest. Klicken Sie dazu Abhängigkeit hinzufügen. Die Ereignisse der auslösenden Kontrolle können auch mit einem Doppelklick definiert werden.



In der Liste Kontrolle können alle Kontrollen der aktuellen Seite, bei denen JavaScript eingetragen werden kann, einschließlich der Seite selbst ausgewählt werden. Wählen Sie hier die Kontrolle Warengruppe aus. Wählen Sie in der zweiten Liste aus, welches Ereignis die Aktualisierung der Auswahlliste auslösen soll.

Welche Ereignisse wählbar sind, hängt vom Typ der auslösenden Kontrolle ab. So kann bei einer Auswahlliste z.B. das Ereignis onchange genutzt werden, das eintritt, sobald sich der aktuelle Eintrag in einer Auswahlliste ändert. Bei einer Schaltfläche kann z.B. das Ereignis onclick gewählt werden, das eintritt, wenn ein Anwender auf die Schaltfläche klickt. Ihnen stehen alle kontrollenspezifischen Ereignisse zur Verfügung, die in Intrexx auch mit JavaScript genutzt werden können. Speichern Sie die Einstellung mit OK.



Im Bereich Filter wird nun der Filter definiert, der bei der Auswahl einer Warengruppe auf die Auswahlliste Unterwarengruppe abgesetzt wird. Klicken Sie hier auf Hinzufügen oder legen Sie den Filter mit einem Doppelklick im Bereich Filter an.



Allgemeine Informationen zum Thema Filter in Intrexx erhalten Sie hier.

Wählen Sie dann das Datenfeld aus, dessen Wert mit dem Wert in der auslösenden Kontrolle verglichen werden sollen. Für unser Beispiel soll der Wert des Datenfeldes FKLID mit dem gespeicherten Wert der Kontrolle Warengruppe verglichen werden.



In der Datenbanktabelle wird der Primärschlüssel , die LID einer Warengruppe, von Intrexx automatisch in der untergeordneten Datengruppe im Feld FKLID gespeichert, wenn eine neue Unterwarengruppe angelegt wird. Die Eltern-Kind-Beziehung der Daten wird also automatisch erledigt, sobald eine untergeordnete Datengruppe in einer Intrexx Applikation erstellt wird.

Mit dem Filter FKLID = Kontrolle Warengruppe werden nur die Unterwarengruppen angezeigt, die im Feld FKLID denselben Wert wie die ausgewählte Warengruppe im Feld LID haben.

Dabei ist in diesem Fall die Einstellung gespeicherter Wert obligat. Diese Einstellung vergleicht den Wert des Datenfeldes automatisch mit der LID des Datensatzes. Die Einstellung angezeigter Wert hingegen vergleicht mit der angezeigten Zeichenfolge in der auslösenden Kontrolle.

Beim Vergleich mit mehreren Datenfeldern kann angegeben werden, ob alle oder mindestens ein Datenfeld den Filterausdruck erfüllen müssen. Die Intervalloption steht zur Verfügung, wenn den dynamischen Filtern Wertebereich oder Kalender verglichen wird.

Bei einem Vergleich mit der Filterkontrolle Boolesche Werte kann der Modus für die Auswirkung, die das Selektieren des Kontrollkästchens im Browser hat, festgelegt werden. Klicken Sie auf OK, um die Filterdefinition abzuschließen.



Beim Laden einer Seite im Browser werden die Einträge einer Auswahlliste, bei der Abhängigkeiten definiert sind, ungefiltert angezeigt. Wenn Sie hier das onload-Ereignis der Seite als auslösendes Ereignis nutzen, wird der Filter bereits beim Laden der Seite abgesetzt.

Klicken Sie OK.



Klicken Sie auf OK, um die Konfiguration der abhängigen Auswahlliste abzuschließen. In der auslösenden Kontrolle, in unserem Beispiel der Auswahlliste Warengruppe, wird beim onchange-Event automatisch Skript eingetragen. Dieser Eintrag dokumentiert die Belegung des Events. Der Titel wird aus dem Begriff Abhängigkeit: und dem Namen der abhängigen Auswahlliste gebildet. Im Skripteditor wird dabei kein Skript angezeigt.

Datengruppe ohne Beziehung

Eine abhängige Auswahlliste kann auch über den Vergleich mit der angezeigten Zeichenfolge in der auslösenden Kontrolle gefiltert werden, wenn Datengruppen nicht über einen Key in Beziehung stehen.

Nehmen wir an, dass bei der Auswahl eines Lagerortes nur die Warengruppen angezeigt werden sollen, die an diesem Lagerort gelagert werden. In unserer Beispielanwendung wird der Lagerort in der Datengruppe Warengruppe im Datenfeld Lagerort gespeichert.



In der Datengruppe Lagerort hingegen werden alle insgesamt bestehenden Lagerorte gespeichert. Die Datengruppe Lagerort muss sich dabei nicht zwangsläufig in derselben Applikation befinden. Auf der Eingabeseite Produkt wird zusätzlich die Auswahlliste Lagerort angelegt.



Bei der Auswahlliste Warengruppe wird die Kontrolle Lagerort mit dem Ereignis onchange im Eigenschaftendialog auf dem Reiter Abhängigkeiten eingetragen.



Der unten abgebildete Filter schränkt die Einträge der Auswahlliste Warengruppe nach dem Vergleich mit dem Lagerort ein.



Mit diesen Einstellungen werden in der Auswahlliste Warengruppe nur die Warengruppen angezeigt, die dem in der Auswahlliste Lagerort ausgewählten Lagerort zugeordnet sind.

Dynamischer Filtertyp Operator

Der dynamische Filter Operator kann so eingestellt werden, dass Werte aus einer untergeordneten Datengruppe gesucht werden. Beim Filtern sollen nicht die gefundenen Datensätze der untergeordneten Datengruppe angezeigt werden, sondern die Sätze aus der übergeordneten Datengruppe, in denen der Wert aus der untergeordneten Datengruppe vorkommt.

Wenn Sie z.B. prüfen wollen, welche Unterwarengruppen in Warengruppen vorkommen, können Sie für die Warengruppen-Tabelle (in unserem Beispiel auf der Hauptseite der Applikation) einen solchen Filter einrichten.



Der Filter wird auf die Datengruppe Unterwarengruppe gesetzt.



In der Tabelle wird die Abhängigkeit wie folgt eingetragen:



Als auslösende Kontrolle wird der Operator des Filters eingetragen. Der Filter wird wie folgt konfiguriert:



Als zu filterndes Datenfeld wird die ID der Warengruppe ausgewählt. Diese ID wird in der Unterwarengruppe im Feld FKLID eingetragen, sobald eine neue Unterwarengruppe angelegt wird. Als Vergleichswert wählen Sie das Feld Operator aus, in dem der Suchbegriff vom Anwender eingetragen wird. Nun kann als Vergleichsfeld das Feld FKLID ausgewählt werden. Hier sehen Sie das Ergebnis im Browser.

Referenzen

Abhängige Auswahllisten können auch bei Daten aus Referenzen eingesetzt werden.



In diesem Beispiel werden Musikloops in verschiedenen Tempi in einer Anwendung verwaltet. Wenn der Anwender ein Tempo in der Auswahlliste bpm auswählt, soll die abhängige Auswahlliste, die alle Titel enthält, nur die Loops anzeigen, die im ausgewählten Tempo eingespielt sind.

In der Datengruppe bpm werden alle Tempi in einem integer-Datenfeld gespeichert. Die Datengruppe Loops referenziert die Datengruppe bpm. Hier werden die Titel aller Loops und das entsprechende Tempo gespeichert.



Das Tempo wird dabei aus einer Auswahlliste, die ihre Einträge aus der Referenz der Datengruppe bpm bezieht, ausgewählt. Auf der Eingabeseite bpm - Loops kann nun nach Loops in einem bestimmten Tempo gesucht werden.



Die nötigen Einstellungen werden im Eigenschaftendialog der Auswahlliste Loops auf dem Reiter Abhängigkeiten gesetzt.



Hier wird die Auswahlliste bpm als auslösende Kontrolle eingesetzt. Der Filter soll mit dem Ereignis onchange abgesetzt werden. Der Filter kann in diesem Fall auf zwei verschiedene Arten gesetzt werden:

Zum einen kann der Primary-Key der Referenz mit dem gespeicherten Wert der Kontrolle verglichen werden.



Zum anderen kann der Wert des Referenzdatenfeldes bpm mit dem angezeigten Wert in der Auswahlliste bpm verglichen werden.

Seiteneigenschaften - Reiter Abhängigkeiten

In den Eigenschaften von Seiten finden Sie den Reiter Abhängigkeiten.



Hier werden alle Abhängigkeiten, die auf der aktuellen Seite definiert sind, aufgelistet. Mit einem Klick auf Hinzufügen können neue Abhängigkeiten definiert und anschließend der zu filternden Kontrolle zugeordnet werden.