2.2 Maskenfelder

2.2 Maskenfelder

Maskenfelder ermitteln

Mit folgenden Methoden können Felder auf DMS-Indexdatenmasken und -Workflowmasken ermittelt werden.

API-Methode

Verfügbar ab

Beschreibung

formHelper.getFields()

8.50 Final

Liefert ein JavaScript-Objekt mit allen Feldern zurück in der Form 'key - value'. Der Key entspricht im DMS-Umfeld dem internen Namen des Feldes und im Workflow der GUID des Feldes.

formHelper.getFieldByName({name})

8.50 Final

Liefert zum übergebenen Namen genau ein Feldobjekt zurück oder NULL, wenn das Feld nicht existiert.

Parameter:

  • name – Name des Feldes

Felder auf Workflowmasken ermitteln

Ab Version 11.10 verfügen Felder auf Workflowmasken über einen internen Namen. Daraus folgt, dass diese ab 11.10 neben dem bis 11.10 verfügbaren Namen* auch über den internen Namen ermittelt werden können.

*Es ist zu beachten, dass Workflow-Modelle, die aus früheren Versionen in 11.10 umziehen, behalten den bis 11.10 verfügbaren Namen für Felder auf Workflowmasken. Neu erstellte Felder verfügen dann ausschließlich über den internen Namen. 

formHelper.getFieldByInternal({internalName})

8.50 Final

Liefert zum übergebenen internen Namen genau ein Feldobjekt zurück oder NULL, wenn das Feld nicht existiert.

Parameter:

  • internalName – der interne Name des Feldes oder die eindeutige Guid (für Workflowmasken bis 11.10)

Felder auf Workflowmasken ermitteln

Ab Version 11.10 verfügen Felder auf Workflowmasken über einen internen Namen. Daraus folgt, dass diese ab 11.10 neben der Guid auch über den internen Namen ermittelt werden können.

formHelper.getFieldByAnyName({name})

10.10 SR 2

Liefert zum übergebenen sprachabhängigen Namen genau ein Feldobjekt zurück oder NULL, wenn das Feld nicht existiert.

Parameter:

  • name – der sprachabhängige Name des Feldes

formHelper.getFieldByAnyKey({key}, {value})

8.50 Final

Liefert zum Key-Value-Paar das passende Feld oder NULL.

Parameter:

  • key – Name des Keys; erlaubte Werte:

    • name – der Anzeigename

    • internal – der interne Name

    • guid - die eindeutige Guid

    • dbname - der Datenbankname

    • tabIndex - der Tabindex

  • value – der Wert, nach dem gesucht werden soll

Beispiel:

formHelper.getFieldByAnyKey("internal", "PageCtrl");

formHelper.getFieldsFromPageControl({internal}, {pageIdentifier})

8.50 Final

deprecated

Liefert die Models aller Felder eines PageControls zurück. Optional kann der 'pageIdentifier' angeben werden, wenn nur die Felder einer einzelnen Seite benötigt werden.

Parameter:

  • internal – interne Name des Pagecontrols

Optionale Parameter:

  • pageIdentifier – der Index, der Titel , oder der interne Name der Seite von der die Felder geholt werden sollen

formHelper.getCompleteFieldsFromPageControl({internal}, {pageIdentifier})

9.10 SR 6

Liefert alle Felder eines PageControls zurück. Optional kann der 'pageIdentifier' angeben werden, wenn nur die Felder einer einzelnen Seite benötigt werden.

Parameter:

  • internal – interne Name des Pagecontrols

Optionale Parameter:

  • pageIdentifier – der Index, der Titel , oder der interne Name der Seite von der die Felder geholt werden sollen

Statischer Text

API-Methode

Verfügbar ab

Beschreibung

setTitle({title})

10.00 SR4

Ändert den Text des Feldes, z.B. beim Aufruf im onShow-Eventskript.

Parameter:

  • title – String für den neuen Text

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.setTitle("neuer Text"); // Danach wird der neue Text angezeigt

setTooltip({tooltip})

10.00 SR4

Ändert den Tooltip des Feldes, z.B. beim Aufruf im onShow-Eventskript.

Parameter:

  • tooltip – String für den neuen Text

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.setTooltip("neuer Text"); // Danach wird der neue Tooltip angezeigt

Textfelder, Checkboxen und Radiobuttons

Die Webclient-Skripting-API stellt für ein- und mehrzeilige Textfelder, Checkboxen ("Kontrollkästchen") und Radiobuttons ("Optionsschaltflächen") folgende Methoden auf dem jeweiligen Feld bereit. Das Feld wird entweder als Eventhandlerparameter direkt bereitgestellt, wenn ein Event auf dem jeweiligen Feld ausgelöst wurde oder es muss über den obenstehenden Methoden zuvor ermittelt werden.

API-Methode

Verfügbar ab

Beschreibung

show()

hide()

8.50 Final

Blendet das Feld aus oder ein. Es wird sowohl Beschriftung als auch Dialogelement aus- und eingeblendet.

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.show(); // Danach ist es sichtbar field.api.hide(); // Danach ist es unsichtbar

Ab 10.0 SR 3:

Bei Radiobuttons ist es möglich, einzelne Knöpfe zu verstecken. Werden die Funktionen am ersten Knopf aufgerufen, betreffen sie standardmäßig zwecks Abwärtskompatibilität die gesamte Gruppe. Wird true als Parameter mitgegeben, wird die aufgerufene Funktion nur auf den ersten Knopf angewendet.

isVisible()

8.50 SP6

Gibt zurück, ob das Formularfeld sichtbar ist. Hierbei werden auch übergeordnete Maskenelemente wie Gruppen und PageControls mitbeachtet. Sind diese unsichtbar und das Feld selber jedoch sichtbar, so gibt die Methode trotzdem unsichtbar zurück.

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.isVisible(); // true wenn sichtbar, false wenn unsichtbar

enable()

disable()

8.50 Final

Macht ein Feld beschreibbar oder schreibgeschützt.

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.enable(); // Danach ist es beschreibbar field.api.disable(); // Danach ist es schreibgeschützt

Ab 10.0 SR 3:

Bei Radiobuttons ist es möglich, einzelne Knöpfe zu deaktivieren. Werden die Funktionen am ersten Knopf aufgerufen, (de)aktivieren sie standardmäßig zwecks Abwärtskompatibilität die gesamte Gruppe. Wird true als Parameter mitgegeben, wird die aufgerufene Funktion nur auf den ersten Knopf angewendet.

isEnabled()

8.50 SP6

Gibt zurück, ob das Feld aktiviert oder deaktiviert ist.

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.isEnabled(); // true wenn aktiv, false wenn deaktiviert

focus()

8.50 Final

Fokussiert das Feld.

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.focus(); // Danach hat das Feld den Eingabefokus

getRequired({initial})

9.00 SP1 SR4

Gibt zurück, ob es sich um ein Pflichtfeld handelt.

Optionaler Parameter:

  • initial –boolescher Wert, ob der Pflichtfeldstatus der Objektdefinition oder der aktuellen Maske abgefragt werden soll. Ohne Angabe wird der aktuelle Wert zurückgegeben.

Rückgabewert:

  • Pflichtfeldstatus des Feldes als boolescher Wert

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.getRequired();

setRequired({isRequired})

9.00 SP1 SR4

Setzt den Pflichtfeldstatus eines Feldes. Sofern ein Feld in der Objektdefinition als Pflichtfeld markiert ist, lässt sich der Status nicht verändern.

Es können Textfelder (ggf. mit Addons) als Pflichtfelder festgelegt werden.

Parameter:

  • isRequired – boolescher Wert, ob das Feld ein Pflichtfeld sein soll.

Rückgabewert:

  • Pflichtfeldstatus des Feldes als boolescher Wert

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.setRequired(true); // returns true

setValue({value}, {executeOnChangeScript})

8.50 Final

Ändert den Wert des Feldes.

Parameter:

  • value – neuer Wert

Optionaler Parameter:

  • executeOnChangeScript – wenn auf dem Feld ein OnChange-Event liegt, kann die Ausführung des Skripts erzwungen werden. Standard ist 'false'.

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.setValue("neuer Wert", false);

getValue({transformValues})

8.50 Final

Liefert den Wert des Feldes, wie er im Feld steht.

Optionaler Parameter:

  • transformValues – Datumswerte werden als timestamp zurückgegeben. Beim Workflow-Empfänger-AddOn wird die organisationObjectId der Rolle oder Person zurückgegeben. Standard ist 'false'.

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.getValue(false);

getInitialValue({transformValues})

9.00 SR5

Liefert den Wert des Feldes, wie er initial im Feld stand. Der Wert entspricht dem Wert des Feldes bevor das Show/BeforeOpen-Event ausgeführt wurde.

Optionaler Parameter:

  • transformValues – Datumswerte werden als timestamp zurückgegeben. Beim Workflow-Empfänger-AddOn wird die organisationObjectId der Rolle oder Person zurückgegeben. Standard ist 'false'.

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.getInitialValue(false);

validate()

8.50 Final

Validiert das Feld asynchron. Setzt das Feld automatisch auf ungültig, wenn eine Stufe der Validierung fehlschlägt. Ungültige Felder erhalten den Status 'isValid=false'.

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.validate().then(function(){ // everything is fine }, function(){ // something went wrong });

setValid()

8.50 Final

Setzt das Feld wieder auf gültig, entfernt die rote Markierung und die Hover- und Fokus-Effekte des Feldes, welche das Feld als ungültig markiert haben.

setInvalid({title}, {message})

8.50 Final

Setzt das Feld wieder auf ungültig. Setzt eine rote Markierung und fügt Hover- und Fokus-Effekte hinzu.

Parameter:

  • title – Titel des Fehlerdialogs

  • message – Beschreibung des Fehler

Beispiel:

var field = formHelper.getFieldByName("Textfeld"); field.api.setInvalid("Title", "This is a custom message");

isValid()

8.50 SP6

Gibt zurück, ob ein Feld valide oder invalide ist ohne selber nochmalig zu validieren.

Beispiel:

var field = formHelper.getFieldByName("Textfeld"); field.api.isValid(); // true wenn valide, false wenn invalide.

addCustomValidation({function}, {title}, {message},{isAsynchronous})

8.50 Final

Fügt eine benutzerspezifische Validierung zum Feld hinzu. Diese Validierung wird automatisch bei 'onChange' ausgeführt sowie vor dem Weiterleiten und Speichern.

Hinweis:
Ab 10.10 wird die Funktion für die synchrone Validierung bei 'onChange' möglicherweise mehrmals ausgeführt. Deshalb sollten dort grafische Interaktionen wie z.B. formHelper.showToast() vermieden werden. Für komplexere Validierung oder für Validierung, die nur einmal ausgeführt werden soll, kann auf die asynchrone Ausführung ausgewichen werden.

Parameter:

  • function – die Funktion, die für die Validierung verwendet werden soll.

  • title – Titel des Fehlerdialogs (für den Fehlerfall)

  • message – Beschreibung des Fehlers (für den Fehlerfall)

  • isAsynchronous - Legt fest, ob die Validierung Synchron oder Asynchron erfolgen soll. Ab 8.50 SP4

Beispiel:

// Synchrone Validierung function myValidator(field, formHelper) { var value = field.api.getValue() return (value != ""); } var field = formHelper.getFieldByName("Textfeld"); field.api.addCustomValidation(myValidator, "Fehler", "Der Wert darf nicht leer sein", false);

Beispiel:

// Asynchrone Validierung // der dritte Parameter ist die "done" Funktion, die aufgerufen werden muss, wenn der asynchrone // Vorgang abgeschlossen ist. function myValidator(field, formHelper, done) { var value = field.api.getValue() if (value != ""){ done(true); } else { done(false); } } var field = formHelper.getFieldByName("Textfeld"); field.api.addCustomValidation(myValidator, "Fehler", "Der Wert darf nicht leer sein", true);

setTitle({title})

10.00 SR4

Ändert den Text des Feldes, z.B. beim Aufruf im onShow-Eventskript.

Parameter:

  • title – String für den neuen Text

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.setTitle("neuer Text"); // Danach wird der neue Text angezeigt

setTooltip({tooltip})

10.00 SR4

Ändert den Tooltip des Feldes, z.B. beim Aufruf im onShow-Eventskript.

Parameter:

  • tooltip – String für den neuen Text

Beispiel:

var field = formHelper.getFieldByInternal("meinFeld"); field.api.setTooltip("neuer Text"); // Danach wird der neue Tooltip angezeigt

 

Inhalt:


Radiobuttons ("Optionsschaltflächen")

Radiobuttons besitzen eine spezielle Eigenart, um diese skripttechnisch zu programmieren.

Zusammengehörige Radiobuttons müssen auf Masken immer in einem Gruppenfeld eingebettet sein. Das Gruppenfeld sorgt dafür, dass der enaio® webclient die Zusammengehörigkeit erkennt und somit Radiobuttons als eine Gruppe bedienbar macht.

Befinden sich Radiobuttons in einem Gruppenfeld, kann ein OnValueChange-Event im enaio® editor-for-events auf das Gruppenfeld gelegt werden. Dieses Event wird aufgerufen, wenn einer der Radiobuttons im Gruppenfeld vom Benutzer angeklickt wird. Befänden sich Radiobuttons hingegen nicht innerhalb eines Gruppenfelds, so ist der Radiobutton mit dem niedrigsten Tab-Index führend und wird für das OnValueChange-Event im enaio® editor-for-events angeboten. Hier ist dieser dann stellvertretend für alle Radiobuttons, die "irgendwie" als zusammenhängend erkannt werden.

Im Model besitzen alle Radiobuttons eine Eigenschaft masterRadioInternal, die den internen Namen des führenden Radiobuttons der Gruppe beinhaltet. Der führende Radiobutton einer Gruppe ist immer jener, der den kleinsten Tab-Index aller Radiobuttons der Gruppe im enaio® editor besitzt. API-Methoden wie getValue() oder setValue() können ausschließlich über den führenden Radiobutton im Skript angesprochen werden und nicht über alle Radiobuttons der Gruppe. Die API-Methode getValue() gibt über den führenden Radiobutton einen nullbasierten Index des ausgewählten Radiobuttons der Gruppe zurück. Mittels eines solchen Index lässt sich gleichermaßen via setValue(<Index>) der gewünschte Radiobutton der Gruppe auswählen.

Für Backend-Interaktionen, wie zum Beispiel die Suche (wo ein Radiobutton als Bedingung formuliert ist), muss ebenfalls immer der interne Name des führenden Radiobuttons einer Gruppe übermittelt werden. Als Value im JSON wird der nullbasierte Index, welcher Radiobutton der Gruppe aktiviert sein soll, übermittelt. Selbiges gilt auch für die Neuanlage- und die Aktualisierungs-Anfragen an das Backend.


Textfelder

Die Webclient-Skripting-API stellt für ein- und mehrzeilige Textfelder folgende Methoden bereit. Das Feld wird entweder als Eventhandler-Parameter direkt bereitgestellt, wenn ein Event auf dem jeweiligen Feld ausgelöst wurde oder es muss über den obenstehenden Methoden zuvor ermittelt werden.

API-Methode

Verfügbar ab

Beschreibung

createPseudoCatalog({catalogConfig},{dataCallback})

8.50 SP6

Ändert das Feld zu einem Katalogfeld gemäß der Konfiguration. Die Werte des Kataloges werden durch den Skripter in Form einer asynchronen Funktion bereitgestellt. Mögliche Kataloge sind Listen, Bäume und Hierarchien.

Hinweis:
Innerhalb des dataCallback sollten keine Werte im Formular geändert werden. Nutzen Sie dazu unbedingt das ValueChanged-Event. Der dataCallback wird zu unterschiedlichen Zeiten aufgerufen und eine Änderung von Formulardaten innerhalb des Callback kann für ungewollten und schwer nachzuvollziehbaren Verhalten führen!

Parameter:

  • catalogConfig – die Konfiguration des Katalogs.

    • useMultiSelect – default 'false'

    • useCheckboxSelection - default 'false'; wird nur bei 'useMultiSelect = true' verwendet

    • useIntermediateNodes – default 'false'

    • separator – default '|' (für die Ebenenbezeichnung der Hierarchiekataloge)

    • multiselectionSeparator - default ';'

    • sortEntries – default 'false'

    • type – 'list', 'tree' oder 'hierarchy'

    • hideValues - default 'false' (ab 9.10 Final SR0) - nur shortValue wird dargestellt, sofern diese Property true ist

    • überschreiten shortValue oder Value eine bestimmte Breite, werden sie nicht mehr angezeigt und durch "..." am Ende kenntlich gemacht

    • shortValue und Value können durch einen Tooltip angezeigt werden

  • dataCallback - eine asynchrone Funktion, die aufgerufen wird, sobald der Anwender auf den Katalogbutton drückt. Die asynchrone Funktion erhält hierbei folgende Übergabeparameter:

    • field – das aktuelle Feld, zu dem der Anwender auf den Katalogbutton gedrückt hat.

    • fieldValue – der aktuelle Wert, der im Feld steht.

    • done – die 'done'-Funktion muss aufgerufen werden, wenn die Einträge für den Katalog bereitgestellt werden sollen. Es muss ein Array von Einträgen zurückgegeben werden, gemäß dem Beispiel der Funktion setCustomListEntries.

Beispiel:

var field = formHelper.getFieldByName("Feld") var config = { type :"list" } function dataCallback (field, fieldValue, done){ var entries = [{ short:"Mein Kurzwert 01", value:"Beschreibung zum Kurzwert 01" },{ short:"Mein Kurzwert 02", value:"Beschreibung zum Kurzwert 02" },{ short:"Mein Kurzwert 03", value:"Beschreibung zum Kurzwert 03" }]; // die done Funktion muss aufgerufen werden, // ansonsten würde der Katalog niemals dargestellt werden done(entries); } field.api.createPseudoCatalog(config, dataCallback)

Buttons (Schaltfächen)

Die Webclient-Skripting-API stellt für Buttons folgende Methoden bereit. Das Feld wird entweder als Eventhandler-Parameter direkt bereitgestellt, wenn ein Event auf dem jeweiligen Feld ausgelöst wurde oder es muss über den obenstehenden Methoden zuvor ermittelt werden.

API-Methode

Verfügbar ab

Beschreibung

Benutzerdefinierte Liste auf einem Button

8.50 SP2

Um einem Button einen Listen- oder ein Baumkatalog hinzuzufügen, der per Klick aufgerufen werden kann, müssen der komplette Katalog und eine zugehörige Konfiguration definiert werden. Zurückgegeben werden die durch den Benutzer ausgewählten Einträge als Liste und ggf. ob sie "UND"- oder "ODER"-verknüpft werden sollen. Bei Hierarchiekatalogen wird der Pfad als geordnete Liste der Hierarchieknoten zurückgegeben.

  • entries – ein Array aus Listeneinträgen (diese können noch untergeordnete Listeneinträge haben).

  • config – ein Objekt, das Informationen zu generellen Eigenschaften des Baumes enthält (optional; default: s.u.).

  • type: string, optional; gibt den Katalogtypen an; mögliche Werte sind: 'tree', 'hierarchy', 'list' (default: 'tree').

Beispiel:

var button = formHelper.getFieldByInternal("myButton"); var entries = [{ icon:"", short:"Baum", value:"Mein Baum", nodes:[{ icon:"", short:"Nummer 1", value:"Mein", nodes: [{ icon:"", short:"Nummer 2", value:"Erster", nodes: [{ icon:"", short:"Nummer 3", value:"Knoten" }] }] }]}, { icon:"", short:"Kurzwert", value:"Keine Knoten" },{ icon:"1073742056", short:"Custom", value:"Dynamisch yeah!", nodes:[{ short:"Letzter", value:"Noch mehr Inhalt" }] } ]; var config = { type: "tree" }; // optionale config parameter // multiSelect - Ermöglicht die mehrfachauswahl im Dialog // readonly - Stellt den Dialog schreibgeschützt dar // useCheckboxSelection - ermöglicht bei multiSelect die Auswahl durch Checkboxen // sortEntries - sofern true, werden die Einträge nach short oder, falls nicht vorhanden, value sortiert (ab 9.10 SR4) button.api.showList(entries, config).then(function(resultObject){ var joinOperator = (resultObject.joinMode == "AND") ? "+" : ";"; var values = []; for (var i in resultObject.raw) { values.push(resultObject.raw[i].value); } console.log(resultObject.selection + "<->" + values.join(joinOperator)); }, function (error) { // Fehler });

Wenn ein benutzerdefinierten Button für ein Eingabefeld definiert wurde, muss für die Keyboard Navigation der Fokus bei Übernahme des Wertes manuell auf das Eingabefeld zurücksetzt werden.

field.api.focus();

setTitle({title})

10.00 SR4

Ändert die Beschriftung des Buttons, z.B. beim Aufruf im onShow-Eventskript.

Parameter:

  • title – String für den neuen Text

Beispiel:

var field = formHelper.getFieldByInternal("myButton"); field.api.setTitle("neuer Text"); // Danach wird der neue Text angezeigt

setTooltip({tooltip})

10.00 SR4

Ändert den Tooltip des Buttons, z.B. beim Aufruf im onShow-Eventskript.

Parameter:

  • tooltip – String für den neuen Text

Beispiel:

var field = formHelper.getFieldByInternal("myButton"); field.api.setTooltip("neuer Text"); // Danach wird der neue Tooltip angezeigt

openModalDialog({URI}, {title}, {width}, {height})

11.10.7

Das "ModalDialog-AddOn" und die "ModalDialog API" sind lizenzpflichtig ("MDA"). Das Vorhandensein der Lizenz wird beim Öffnen des modalen Dialoges überprüft.

Ermöglicht das Öffnen eines modalen Dialoges im OnClickItem-Event eines Buttons (Dialogelement "Schaltfläche"). In dem modalen Dialog können dem Benutzer projektspezifische Funktionalitäten auf Basis von HTML, JavaScript und CSS angeboten werden. Als Parameter werden eine URI sowie Titel und Abmessungen für den modalen Dialog mit übergeben (>> "6. ModalDialog API").

Beispiel:

var field = formHelper.openModalDialog("http://85.38.152.187/resources/apps/osweb/public/modalDialogs/demo-modalDialog/index.html", "My modal dialog", "800", "800").then((result) => {  // Geschlossen mit dem Rückgabewert 1 oder 2 }, function (error) { // Fehler });

Parameter

  • uri - URI, die im iframe innerhalb des modalen Dialoges geladen wird (string)

Stellen Sie sicher, dass die URI an derselben Stelle gehostet wird wie der enaio® webclient, um eine ordnungsgemäße Anzeige aus Sicherheitsgründen zu gewährleisten.

Optionale Parameter:

  • title - Titel, der im modalen Dialog angezeigt wird (string)

  • width - Breite des modalen Dialogs (string)

  • height - Höhe des modalen Dialogs (string)

Der Wert für die Breite sowie die Höhe sollte eine ganze Zahl sein und als Zeichenkette ohne Einheiten angegeben werden.
Verwenden Sie beispielsweise "400" oder "500" als gültige Eingaben.
Für die Breite wird als Default der Wert des Benutzers aus der AS.ini verwendet. Die minimale Breite beträgt 300 Pixel.

Rückgabewert:

Die Methode gibt einen Promise<number> zurück, welcher aufgelöst wird, sobald der modale Dialog geschlossen wird.
Der numerische Wert ist jener, der der "closeModalDialog" Funktion im modalen Dialog übergeben wird.
Folgende Werte sind spezifiziert:

  • 1 → Geschlossen mit Status "Ok"

  • 2 → Geschlossen mit Status "Abbrechen"


Listen und Bäume

Listen und Bäume sind in enaio® webclient generell Zusätze zu einem Feld, die bei der Gestaltung der Masken konfiguriert werden. Die Werte eines Kataloges auf einer Workflow-Maske (nicht Indexdatenmaske) können dynamisch per Script erweitert werden. Im Folgenden wird in verschiedenen Varianten auf die Funktion 'setCustomListEntries' eingegangen, die dies ermöglicht. Listen, Bäume und Hierarchien verwenden dasselbe Steuerelement. Für das Generieren eines dynamischen Baums ist kein XML-Tree erforderlich.

Infos zur Mehrsprachigkeit

In einem mehrsprachig aufgesetztem enaio®-System werden Benutzern, abhängig von ihrer gewählten Objektdefinitionssprache, die Katalogwerte zur Auswahl angezeigt.
So kann zum Beispiel ein französisch sprechender Kollege die zur Auswahl stehenden Werte in einem Katalog in seiner Sprache lesen und verstehen.

Hierbei wird in zwei Arten von mehrsprachigen Katalogen unterschieden:

  • statische mehrsprachige Kataloge
    Kataloge, bei denen Werte vorkonfiguriert worden sind (enao® editor / enao® editor-for-workflow)

  • dynamische mehrsprachige Kataloge (ausschließlich auf Workflow-Masken)
    Kataloge, bei denen KEINE Werte vorkonfiguriert worden sind, sondern diese komplett dynamisch per Script zur Auswahl gestellt werden.

Für die statischen mehrsprachigen Kataloge auf Workflow-Masken können ab Version 11.0 generell dynamische Werte über die Funktion 'setCustomListEntries' ergänzt werden. Diese unterstützen jedoch die Mehrsprachigkeit nicht und es wird immer der im Parameter entries mitgegebene sprachunabhängige "technische" Wert des Kataloges dem Benutzer angezeigt.

Für die dynamischen mehrsprachigen Kataloge auf Workflow-Masken, die ausschließlich per Script mit Werten gefüllt werden, können ab Version 11.10 alle sprachabhängigen Werte mitgegeben werden (Parameter resources).
Der enaio® webclient prüft, ob es sich wirklich um einen leeren dynamischen mehrsprachigen Katalog auf einer Workflow-Maske handelt. Trifft eines der Kriterien nicht zu, dann wird der Katalog wie ein statischer mehrsprachiger Katalog behandelt (Parameter resources wird ignoriert).

Für dynamische mehrsprachige Kataloge müssen Sie die Werte für ALLE aktiven Objektdefinitionssprachen des Systems übermittelt, damit die Anzeige in den Clients sprachabhängig funktioniert.

Funktion 'setCustomListEntries'

Parameter:

  • entries – eine Liste von Werten, die im Listen-/Baumkatalog auf der Workflow-Maske dargestellt werden sollen.
    Ab 11.10: Wenn der dynamische mehrsprachige Katalog auf einer Workflow-Maske dargestellt werden soll, hält dieser Parameter die sprachunabhängigen "technischen" Werte.

Optionale Parameter:

  • resources (ab 11.10) - eine Liste von mehrsprachigen Werten, die in einem dynamischen mehrsprachigen Listen-/Baumkatalog auf der Workflow-Maske entsprechend der eingestellten Objektdefinitionssprache des Benutzers dargestellt werden sollen.
    Ein Eintrag in dieser Liste entspricht einem JavaScript-Objekt mit sprachabhängigen Werten in Form 'key - value':

    • Der Key entspricht einer Locale z.B. de_DE für Deutsch (Deutschland). Für eine Übersicht der unterstützen Locales siehe die auf dem System konfigurierten Objektdefinitionssprachen (asobjdef.xml).