Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum.composite.form
Dieses Element stell eine Auswahlbox zur Verfügung und unterstützt sowohl Einzel- als auch Mehrfachwerte.
agorum.composite.form.element.select erbt alle grundlegenden Eigenschaften von element.
let aguila = require('common/aguila'); let form = aguila.create({ width: 500, height: 300, type: 'agorum.composite.form.basic', elements: [ { type: 'agorum.composite.form.element.select', name: 'select1', label: 'Select 1', restricted: true, data: [ { value: 'value1', text: 'Wert 1' }, { value: 'value2', text: 'Wert 2' } ] }, { type: 'agorum.composite.form.element.select', name: 'select2', label: 'Select 2', dataSource: 'MAIN_MODULE_MANAGEMENT/customers/D4wAddress/Data/d4w_address_data_country' } ] }); form;
Dieses Beispiel verwendet am Ende die Standard-Datenquelle aus dem Address-Modul, um eine Länderauswahl (d4w_address_data_country) anzuzeigen:
MAIN_MODULE_MANAGEMENT/customers/D4wAddress/Data/d4w_address_data_country
Alle Parameter in element gelten. Zusätzlich gelten folgende Parameter.
Definiert einen Platzhalter-Text für das select-Element mit einem einzelnen Wert (multi=false), den das System anzeigt, wenn das Element leer ist.
Wert | Beschreibung |
---|---|
true | Erlaubt nur Werte aus der Datenquelle. |
false (Standard) | Erlaubt das Eingeben von eigenen Werten, die nicht in der Datenquelle enthalten sind. |
Beispiel
form.down('select1').restricted = true;
Wert | Beschreibung |
---|---|
true | Ermöglicht die Auswahl mehrerer Werte (tokenbox). |
false (Standard) | Ermöglicht die Auswahl eines einzelnen Werts. |
Beispiel
form.down('select1').multi = true;
Definiert die Mindestanzahl einzugebender Zeichen, bevor das System in der Datenquelle sucht (Standard: 0).
Beispiel
form.down('select1').minChars = 2;
Definiert am Element eine Datenquelle.
Beispiel
form.down('select1').data = [ { value: 'value1', text: 'Wert 1' }, { value: 'value2', text: 'Wert 2' } ];
Definiert eine in der MetaDB angelegte Datenquelle.
Die Datenquelle dient dazu, dem Benutzer aus einer Liste die richtigen Werte wählen zu lassen. Dabei ist der gewählte Wert (value) im Normalfall anders als der dem Benutzer angezeigte Wert (text). Das System zeigt etwa bei der Auswahl eines Benutzers den Benutzernamen an, aber der gewählte (hinterlegte) Wert ist die ID des Benutzers.
Das Element select ist in der Lage, passend zum Wert den Text anzuzeigen. Dazu ist es notwendig, dass das System den Wert wieder zurückübersetzen kann, also vom Wert zum Text gelangt.
Für die folgenden Standard-Datenquellen funktioniert dieser Vorgang automatisch:
Beispiel 1 – eigene dataSource verwenden
form.down('select1').dataSource = 'MAIN_MODULE_MANAGEMENT/customers/TESTPLUGIN/Data/test_datasource'
Beispiel 2 – dataSource für user, group oder usergroup
Die Einstellung, ob Sie Benutzer, Benutzergruppen oder beides wählen können, wird durch die dataSourceParameter bestimmt (siehe DataHandler „user-group“).
let objects = require('common/objects'); let groupname = 'GRP_myCompanyprefix_awesomeGroupname'; { type: 'agorum.composite.form.element.select', name: 'user', label: 'Select your User', dataSource: 'MAIN_MODULE_MANAGEMENT/customers/Standard/Data/user-group', dataSourceParameter: { searchUsers: true, // default: false searchGroups: true, // default: false //groupId: objects.find('group://' + groupname), // only members within this group will be shown }, },
Übergibt optional Parameter an den Datenquellen-Handler.
Beispiel
form.down('select1').dataSourceParameter = { param1: 'Wert 1', param2: 'Wert 2' };
Im JavaScript-Handler können Sie folgendermaßen auf die Parameter zugreifen.
Beispiel, wenn ein agorum core smart assistant-Handler vorhanden ist
acbasicarchive_aktearea.dataSourceParameter = { filter: { acbasicarchive_aktesection: value } };
Hinweis: Bei csv-DataHandlern muss in der Spalte, nach der Sie filtern möchten, ein Wert enthalten sein, da das System die Filterung sonst nicht anwendet und die Zeile zurückgibt.
Wert | Beschreibung |
---|---|
true | Text entspricht Wert, somit ist kein lookup-Handler notwendig. |
false | Text ist ungleich Wert, somit ist ein lookup-Handler notwendig. |
Beispiel
form.down('select1').textIsValue = true;
Sie können diesen Parameter nachträglich ändern.
Wert | Beschreibung |
---|---|
combo (Standard) | Erzeugt ein Auswahlmenü. |
check | Stellt entweder Radiobuttons (multi=false) oder Checkboxen (multi=true) dar.
|
Beispiel
let aon = { type: 'agorum.vbox', width: 300, items: [ { type: 'agorum.composite.form.element.select', name: 'select2a', displayType: 'check', multi: true, // orientation: 'vertical', orientation: 'horizontal', data: [ { text: 'text 1', value: 'value_1' }, { text: 'text 2', value: 'value_2' } ] } ] };
Steuert, wie das System die Checkboxen des Parameters displayType darstellt.
Dieser Parameter funktioniert nur in Verbindung mit dem displayType check.
Wert | Beschreibung |
---|---|
vertical (Standard) | Stellt die Checkboxen untereinander dar. |
horizontal | Stellt die Checkboxen nebeneinander dar. |
Wert | Beschreibung |
---|---|
true | Stellt Texte aus der Datenquelle als HTML dar. Sie können dadurch Styles verwenden. |
false (Standard) | Stellt Texte als Text dar und etwaige HTML Codes encodiert. |
Beispiel
form.down('select1').textIsHtml = true;
Sie können diesen Parameter nachträglich ändern.
Für JavaScript-Datenquellen existiert eine spezielle Möglichkeit. Im Falle von lookup ruft das System diesen JavaScript-Handler auf, es lässt sich also nicht mit einer anderen Art von DataHandler für den lookup kombinieren.
Hier ruft das System den JS-Datahandler mit parameters.lookup = true auf. Das bedeutet, dass das System innerhalb des Skripts reagiert und den lookup durchführt.
Beispiel
/* global sc, query: true, parameters, command */ let objects = require('common/objects'); // only 'read' is supported if (command !== 'read') { throw new Error('This data handler does not support the command "' + command + '"'); } let parts = [ 'isfolder:true ${FOLDERPATH:/agorum/roi/Files}' ]; if (query && query.trim().length > 0) { if (parameters.lookup) { // lookup mode, search for uuid query = 'uuid:' + query; } else { // normal mode filter name by query query = '(name:(' + query.trim().split(' ').filter(f => f.trim().length > 0).join('* ') + '*))'; } } else { query = '*'; } parts.push(query); objects .query(parts.join(' ')) .limit(100) .sort('name') .search('name', 'uuid') .rows .map(function(row) { return { value: row.uuid, text: row.name }; });
Sie müssen einen lookup-Handler definieren (siehe Beispiel-Datenquellen für DataHandler).
Alle Events in element gelten. Zusätzlich gelten folgende Events.
Löst aus, wenn sich die Eigenschaft ändert.
Das System übergibt als Parameter den neuen Wert von restricted.
Löst aus, wenn sich die Eigenschaft ändert.
Das System übergibt als Parameter den neuen Wert von multi.
Löst aus, wenn sich die Eigenschaft ändert.
Das System übergibt als Parameter den neuen Wert von minChars.
Löst aus, wenn sich die Eigenschaft ändert.
Das System übergibt als Parameter den neuen Wert von data.
Löst aus, wenn sich die Eigenschaft ändert.
Das System übergibt als Parameter den neuen Wert von dateSource.
Löst aus, wenn sich die Eigenschaft ändert.
Das System übergibt als Parameter den neuen Wert von dataSourceParameter.
Löst aus, wenn sich die Eigenschaft ändert.
Das System übergibt als Parameter den neuen Wert von textIstValue.