Formulare werden mit MASKITO FormDesigner gestaltet – in Oberfläche und Logik. Die Logik bzw. Verhalten und Reaktion von Formularen auf Nutzereingaben werden als Funktionen definiert.
Lokale Funktionen können im MASKITO FormDesigner über das Menü oder die Toolbar hinzugefügt werden und wirken sich nur auf Controls derselben Formularseite aus.
Zum Anlegen lokaler Funktionen stellt der FormDesigner ein Funktionsfenster zur Verfügung, worüber alle nötigen Einstellungen vorgenommen werden. Über die CallFunction (CallFkt)-
Methode ist es möglich innerhalb einer Funktion andere lokale (auch von anderen Formularseiten) und globale Funktionen aufzurufen. Sonst werden lokale Funktionen nur ausgeführt, wenn der Anwender sich auf der entsprechenden Seite befindet.
Um die Performance der Formulare zu erhöhen, sollten Funktionalitäten, sofern dies möglich ist, über lokale Funktionen realisiert werden.
Globale Funktionen können ebenfalls im MASKITO FormDesigner über das Menü oder die Toolbar hinzugefügt werden und greifen auf alle im Formular enthaltenen Controls zu. Da sich globale Funktionen nur sehr gering von den lokalen Funktionen unterscheiden, können 98% aller lokalen Funktionen auch als globale Funktionen angelegt werden. Aufgrund der Performancevorteile der lokalen Funktionen sollte dies aber vermieden werden.
Checkbox-Gruppen sind spezielle Funktionen für Checkboxen und können über die Toolbar des MASKITO FormDesigners hinzugefügt werden. Mit Hilfe der Checkboxgruppen besteht die Möglichkeit zu definieren, wie viele Checkboxen gleichzeitig ausgewählt sein dürfen.
Ein Beispiel dafür sind mehrere Optionen bei Umfragen, wobei nur eine definierte Anzahl an z. B. Wünschen erlaubt sind. Dabei ist es möglich, dass ein Checkbox-Control mehreren Checkboxgruppen angehört.
Zum Anlegen der Funktionen stellt der MASKITO FormDesigner ein Funktionsfenster zur Verfügung, worüber alle nötigen Einstellungen vorgenommen werden.
Im MASKITO FormDesigner kann für jede Seite die Vollständigkeitsprüfung aktiviert werden. Über die Vollständigkeit wird festgelegt, welche Elemente auf einer Formularseite ausgefüllt sein müssen, damit die Seite vollständig ist.
Die Vollständigkeitsprüfung hat ein eigenes Funktionsfenster. Dort können die Controls der Formularseite mittels logischer Operatoren UND und ODER für die Vollständigkeitsregel definiert werden.
Auf der Formularseite kann die Vollständigkeit mittels verschiedener Controls im MASKITO FormViewer angezeigt werden (Treeview Icon der Formularseite (bis Maskito 7.2), Vollständigkeitsbalken im MASKITO FormViewer). In der .sfx Datei kann im Element-Tag Data Name="form_formcomplete" Value="True"
abgerufen werden, ob ein Formular vollständig ausgefüllt ist.
Siehe auch Vollständigkeit überprüfen
Für bestimmte Ereignisse kann es sinnvoll sein, den konkreten Zeitpunkt zu definieren, wann diese Ereignisse behandelt werden sollen. Auch die Ausführungsreihenfolge von Funktionen kann festgelegt werden. Der MASKITO FormDesigner bietet dazu passende Optionen: Vordefinierte bzw. benutzerdefinierte Ereignisbehandlungen.
Per Funktionseditor des FormDesigners werden Bedingungen für die Ausführung einer Funktion im WENN-Bereich festgelegt, z. B. das Klicken eines Buttons. Im DANN- bzw. SONST-Bereich werden Befehle (Handlungsanweisungen) festgelegt, z. B. der Aufruf einer anderen Funktion (CallFunction-Befehl). Ein Beispiel: Unter der Bedingung, dass der Benutzer ein Häkchen in eine Checkbox setzt, kann eine andere Funktion aufgerufen werden, die weitere Bedingungen prüft und entsprechende Befehle ausführt. Auf ähnliche Weise können Funktionen auch aktiviert (Function Enable) bzw. deaktiviert (Function Disable) werden, um die Verfügbarkeit der konkreten Funktion zu steuern.
Funktionen reagieren auf Benutzereingaben im Formular, z. B. das Klicken eines Buttons. Zusätzlich gibt es auch andere Ereignisse als Bedingung für eine Funktion, z. B. das Ereignis, dass ein bestimmter Wert erreicht oder in ein Feld eingetragen wurde (Wertevergleich). Damit solche Funktionen, die einen Wertevergleich als Bedingung besitzen, zu dem gewünschten Zeitpunkt ausgeführt werden, sind sie per CallFunction-Befehl (CallFKT) im DANN- bzw. SONST-Bereich einer anderen Funktion explizit aufzurufen.
Über explizite Funktionsaufrufe (CallFunction-Befehl) wird auch die Reihenfolge bestimmt, in der konkrete Werte überprüft werden sollen. So werden Fälle (Bedingungskombinationen) unterschieden und nacheinander untersucht, um in Abhängigkeit davon Handlungsanweisungen auszuführen.
Auch das Verhalten und die Darstellung des Formulars können in Abhängigkeit von Ereignissen gesteuert werden, die beim Laden eines konkreten Datensatzes in ein Formular auftreten, noch bevor der Benutzer Eingaben tätigen kann. Ein Beispiel: Der aufgerufene Datensatz kann in bestimmten Feldern bereits Werte enthalten, z. B. die AD-Gruppe des aufrufenden Benutzers. Je nach AD-Gruppe kann nun unterschieden werden, welche Schaltflächen bzw. Informationen bereitgestellt bzw. ausgeblendet werden, Stichwort Schreibschutz.
Im MASKITO FormDesigner kann optional eine Funktion definiert werden, deren Handlungsanweisungen beim Aufruf des Formulars ausgeführt werden sollen, z. B. das Ermitteln der AD-Gruppe des aufrufenden Benutzers. Ebenso kann optional eine Funktion für die unmittelbare Reaktion auf die vordefinierten Werte des soeben geladenen Datensatzes festgelegt werden, z. B. Schreibschutz. Für beide Funktionen lautet die Bedingung im WENN-Bereich "TRUE". Für beide Funktionen muss der Ausführungszeitpunkt festgelegt werden: Im oberen FormDesigner-Menü "FormViewer" > "Ereignisse". Im Dialog „Auf Ereignisse reagieren“ führt ein Klick auf die Schaltfläche mit den drei Punkten in der Zeile "Loading"
bzw. „Loaded“
zur Übersicht der verfügbaren Funktionen, wo jeweils die gewünschte Funktion auszuwählen ist.