Manchmal benötigt man in Auswahlfeldern (Combobox) nur eine bestimmte Menge aller Daten, die zur Auswahl angeboten werden sollen. Diese sollen sich dann abhängig eines anderen ausgewählten Wertes zusammensetzen.
Anwendungsbeispiele:
Dieses Verhalten kann in Nuclos mit Hilfe von Datenquellen realisisert werden.
Fallbeispiel: Artikel eines Lieferanten
In den Stammdaten einer Anwendung gibt es Lieferanten, die eine bestimmte Produktpalette im Angebot haben. Diese Produktpalette ist in einem Unterformular des Lieferanten organisiert.
In der Bestellung wird nun ein Lieferant ausgewählt. Im Unterformular der Bestellung sollen dann die bestellten Artikelpositionen eingetragen werden können. Dabei sollen in der Combobox für die Auswahl des Artikels nur Artikel auswählbar sein, die auch zu diesem Lieferanten gehören.
Um das zu realisieren, gehen Sie folgendermassen vor:
Menüaufruf: (Administration) - (Datenquellen) - (Valuelist Provider)
Es muss zunächst ein Übergabeparameter angegebenw werden z.B. intid_kunde welcher die interne ID des Datensatzes übermittelt, welche unseren Valuelist Provider aktualisiert. Im Falle der Rechnungsadressen eines Kunden wäre dies z.B. die interne Id eines Kunden
Dieser Übergabeparameter darf nicht intid heissen |
Folgende Spaltendefinitionen können unterschieden werden
Referenz bzw. interne Id des Datensatzes. Wird benötigt um beim Abspeichern des Datensatzes die interne Verknüpfung herzustellen. Der Benutzer sieht diese interne Id nicht.
Anzeige
So wird der Datensatz dem Benutzer Präsentiert, in diesem Fall wird nur der name als Anzeigetext verwendet. Denkbar wäre, dass Vorname + Nachename + Strasse + Hausnr in Kombination als Anzeige verwendet werden.
Default (optional)
Ein Ja/Nein Feld mit dem Bestimmte Datensätze als Standard gekennzeichnet werden. Im Layout kann dies Verwendet werden um beim Durchsuchen der Liste automatisch einen Standard wie z.B. die Standardadresse auswählen zu lassen.
$username kann in Bedingung oder Ihrem SQL Quelltext verwendet werden und gibt den aktuell angemeldeten Benutzer aus z.B. 'nuclos' $searchmode (boolean) wird vom System auf true gesetzt, wenn sich der VLP in einer Suchmaske befindet, ansonsten false |
|
Im Layout wird der Valuelist Provider über die Palette an des gewünscht Feld, in diesem Fall Rechnungsadresse, gehängt.
das ist das weiter oben erwähnte, interne Referenzfeld welches Nuclos zum Verknüpfen der Datensätze benötigt
Das bekommt der Benutzer angezeigt
Wenn in der Datenquelle des Valuelist Provider ein Standardflag gesetzt wurde (z.B. Standardadresse), so kann das hier angegeben werden.
Definieren Sie nun auf dem Ausgangsfeld eine Regel:
Ereignis: Wenn Wert sich ändert
Aktionstyp: Werteliste aktualisieren
Businessobjekt: Businessobjekt der Zielkomponente, falls es sich um ein Unterformular handelt. Wenn sich das Zielfeld im gleichen Businessobjekt befindet, bleibt dieses Feld leer.
Zielkomponente: Feld (Combobox), dessen Werte aktualisiert werden sollen.
Parameter: Parametername, der in der Datenquelle definiert wurde als Bedingung definiert wurde.
Im Beispiel sieht diese Einstellung so aus:
Nun haben Sie die Werte in der Combobox entsprechend eingeschränkt.
Dieser ValuelistProvider wird verwendet, um die Werteliste (Attribut für Status) des Statusfeldes auf bestimmte Businessobjekte einzugrenzen.
Eigenschaften der Komponente bearbeiten:
Parameter Name | Parameter Value |
---|---|
Businessobjekte | Name der Businessobjekt(interner Name) |
Dieser ValuelistProvider wird verwendet, um die Werteliste (Attribut für Aktion) des Aktionsfeldes auf bestimmte Businessobjekten einzugrenzen.
Eigenschaften der Komponente bearbeiten:
Parameter Name | Parameter Value |
---|---|
Businessobjekten | Name der Businessobjekt (interner Name) |
In Spaltendefinitioinen von Unterformulardaten lassen sich mit diesem ValuelistProvider Wertelisten hinterlegen.
Parameter Name | Parameter Value |
---|---|
showValue | Wert, der angezeigt werden soll |
Ergebnis: