Globale Skripte für Formulare

yuuvis® RAD designer 8.x »

Formular-Skripte werden pro Objekttyp und Formular eingebunden. Die Skripte sind unabhängig voneinander und können keine Funktionalität teilen. Wenn allgemein verwendbare Funktionen oder projektspezifische Logik von mehreren Formular-Skripten verwendet werden sollen, können globale Skripte hinterlegt und in Formular-Skripten eingebunden werden.

Notwendig ist das Funktionsrecht Skripte verwalten.

In yuuvis® RAD designer werden globale Skripte im Bereich Skripte eines Projekts angelegt und mit dem Projekt gespeichert.

Globale Skripte bekommen als Eigenschaft einen eindeutigen technischen Namen und eine optionale Beschreibung.

In einem globalen Skript kann definiert werden, welche Funktionen oder Werte öffentlich zur Verfügung stehen sollen. Das Ergebnis liefert mit 'exports' ein Javascript-Objekt.

Globales Beispiel-Skript:

return {
    exports : {
        markRequired: function(element) { element.required=true; }
    }
}

Dieses Skript stellt eine Funktion zur Verfügung, die ein einzelnes Element als Pflichtfeld markiert. Nur Funktionen, die in 'exports' definiert sind, steht auch anderen Skripten zur Verfügung. Diese Skript kann z. B. unter dem technischem Namen 'FormUtils' gespeichert werden.

Wenn ein globales Skript viele Funktionen bereitstellt, wird empfohlen, die Deklaration der Funktionen und die Implementierung voneinander zu trennen.
Ein Beispiel:
return {
	exports : {
		markRequired: markAsRequired;
	}
function markAsRequired(element) { element.required=true; }

Hier wird die Funktion markAsRequired unter dem Namen markRequired exportiert.

Globale Skripte in Formular-Skripten

Globale Skripte haben einen im System eindeutigen technischen Namen. Ein Formular-Skript, das Funktionen des globale Skript 'FormUtils' verwendet, kann so formuliert werden:

return {
    uses : ['FormUtils'],
    init: function(util) {
        util.markRequired(scope.model.vorname);
    }
}

Dieses Formular-Skript definiert mit 'uses', welche globalen Skripte verwendet werden sollen. Angegeben wird der technische Name des globalen Skripts. Wenn mehrere globale Skripte verwendet werden sollen, dann kann eine Liste von Skripten als String Array angegeben werden. Die Exporte des globalen Skripts werden als Übergabeparameter an die vom Skript definierte init-Funktion übergeben und können dort verwendet werden. Das Ergebnis dieses Beispiels ist, dass das Feld mit dem Namen 'vorname' als Pflichtfeld markiert wird.

Gleiches lässt sich in diesem einfachen Fall mit folgendem Formular-Skript erreichen: scope.model.vorname.required=true;