Abhängigkeiten
In den folgenden Ansichtselementen von Intrexx werden Datensätze aufgelistet:
- Auswahlliste
- Listenfeld
- Ansichtstabelle
- frei gestaltete Tabelle
- Recherche
- Diagramm
- Kalenderelement
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.
- Exklusiv:
Mit dieser Einstellung werden nur die Datensätze angezeigt, die den gleichen Zustand wie das Kontrollkästchen des Filters haben.
- Negativ-Selektion:
Bei selektiertem Kontrollkästchen werden alle Datensätze gezeigt. Ist das Kontrollkästchen nicht selektiert, werden die Sätze angezeigt, deren Wert false ist.
- Positiv-Selektion:
Bei selektiertem Kontrollkästchen werden nur Datensätze angezeigt, deren Wert true ist. Ist das Kontrollkästchen nicht selektiert, werden alle Datensätze angezeigt.
- Positiv-Ausschließend:
Bei selektiertem Kontrollkästchen werden nur die Sätze angezeigt, deren Wert false ist. Ist das Kontrollkästchen nicht selektiert, werden alle Datensätze angezeigt.
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.