Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 7 Nächste Version anzeigen »

Eigenen Valuelist Provider definieren

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:

  • Auswahl einer KFZ Marke. In einer Combobox sollen die entsprechend passenden Modelle zur Auswahl stehen.
  • Auswahl eines Gebäudes. In einer Combobox sollen alle dazugehörigen Räume zur Auswahl stehen.
  • etc.

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.

Valuelistprovider 1.gif

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.

Valuelistprovider 2.gif

Um das zu realisieren, gehen Sie folgendermassen vor:

Schritt 1: Definition der Datenquelle

Menüaufruf: (Administration) - (Datenquellen) - (Valuelist Provider)

Folgende Spaltendefinitionen können unterschieden werden

Intid

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.

Systemseitige Parameter

$username kann in Bedingung oder Ihrem SQL Quelltext verwendet werden und gibt den aktuell angemeldeten Benutzer aus z.B. 'nuclos'

Ab Nuclos 4.3

  • Mandant steht je nach Konfiguration zur Verfügung
  • intid (Systemseitig wird die Id des Hauptformulars verwendet. In diesem Beispiel wird der Wert überschrieben. TODO: Besser Parameter für dieses Beispiel umbenennen. )

 


 Schritt 2: Layouteditor -> Valuelist Provider im Zielfeld einrichten

In den Eigenschaften des Zielfeldes (im Beispiel das Feld Artikel) müssen Sie nun folgende Einstellungen vornehmen:

 Achtung: Stellen Sie das Layout auf Expertenmodus um den Valuelist Provider eintragen zu können.

  • Komponenten Typ muss auf combobox stehen
  • Valuelist-Provider: Tragen Sie hier die Eigenschaften des eben angelegten Valuelist Providers ein. Name des Valuelistprovider: in der Auswahlliste stehen alle verfügbaren Valuelist Provider zur Auswahl. ID Feld: die INTID des Ergebniswertes der Abfrage. Anzeigename: die als Anzeigename definierte Spalte des Abfrageergebnisses. Parameter Name/Wert: hier können Sie bei Bedarf einen festen Wert an die Abfrage übergeben.

Im Beispiel sieht das dann so aus:

Valuelistprovider 4.gif

Schritt 3: Layoutregel anlegen

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:

Valuelistprovider 5.gif

Nun haben Sie die Werte in der Combobox entsprechend eingeschränkt.

Vordefinierte Valuelist Provider

status

Dieser ValuelistProvider wird verwendet, um die Werteliste (Attribut für Status) des Statusfeldes auf bestimmte Businessobjekte einzugrenzen.

Valuelistprovider 6.gif

Eigenschaften der Komponente bearbeiten:

Parameter NameParameter Value
BusinessobjekteName der Businessobjekt(interner Name)

process

Dieser ValuelistProvider wird verwendet, um die Werteliste (Attribut für Aktion) des Aktionsfeldes auf bestimmte Businessobjekten einzugrenzen.

Valuelistprovider 9.gif

Eigenschaften der Komponente bearbeiten:

Parameter NameParameter Value
BusinessobjektenName der Businessobjekt (interner Name)

parameters

In Spaltendefinitioinen von Unterformulardaten lassen sich mit diesem ValuelistProvider Wertelisten hinterlegen.

Valuelistprovider 7.gif

Parameter NameParameter Value
showValueWert, der angezeigt werden soll

 

Ergebnis:

Valuelistprovider 8.gif

  • Keine Stichwörter