Formularverarbeitung mit Rich-UI

Rich-UI stellt eine Möglichkeit bereit, die Art von Formularverarbeitung zu implementieren, die in Geschäftsanwendungssoftware traditionell zum Einsatz kommt. Die Verarbeitung hängt vom Rich-UI-Controller ab, durch den definiert wird, wie eine einzelne Anzeige (d. h. ein Widget), mit einem einzelnen Modell (d. h. einem Datenfeld) verbunden ist. Details zu Rich-UI-Controllern finden Sie im Abschnitt “Rich-UI - Validierung und Formatierung”.

Eine Formularverarbeitung kann zum Beispiel in einer Anwendung erfolgen, die die folgenden Schritte ausführt:
Rich-UI stellt zwei Varianten der Formularverarbeitung zur Verfügung:

In beiden Fällen rufen Sie Funktionen auf, die jeweils die Formularfelder der Reihe nach verarbeiten, zum Beispiel um das Formular als Ganzes zu validieren.

Ausgangspunkt für die Formularentwicklung

EGL stellt einen Ausgangspunkt für die Formularentwicklung zur Verfügung. Das heißt kurz gefasst, dass der Rich-UI-Editor anwendungsspezifischen Code bereitstellt und Sie Logik hinzufügen, um diesen Code aufzurufen. Gehen Sie für die Anfangsentwicklung wie folgt vor:
  1. Öffnen Sie einen Handler im Rich-UI-Editor und fügen Sie per Drag-and-drop eine Datensatzdefinition auf der Registerkarte 'Entwurf' ein.
  2. Arbeiten Sie mit einem Assistenten, wie dies in “Widgets durch Ziehen von Daten in den Rich-UI-Editor erstellen” beschrieben wird.
Als Antwort auf Ihre Tastatureingabe fügt der Editor Ihrem Handler den folgenden Code hinzu:
  • Einen Formularmanager. Die Formularfelder in der Deklaration sind auf Ihre Anforderungen abgestimmt.
  • Funktionen, die auf die allgemeine Formularverarbeitungslogik im Formularmanager zugreifen.

Formularfelder

Ein Formularfeld ist selbst eine Datensammlung, d. h. ein Datensatz vom Typ 'FormField'. Der Datensatz wird bei einem Formularmanager anders als bei einem Validierungsformular verwendet. Die Verwendung nur eines Datensatztyps für beide dieser Mechanismen bedeutet, das problemlos zwischen den beiden umgeschaltet werden kann.

Sie legen die für Ihren Zweck geeigneten Datensatzfelder fest, die in der folgenden Tabelle aufgeführt sind.

Feld im Datensatz vom Typ 'FormField' Feldwert Kontext Details
controller Controller Formularmanager oder Validierungsformular Der Controller ist eine Definition, durch die eine Anzeige einem Modell zugeordnet wird.
displayName String? Validierungsformular Die Zeichenfolge wird einer Feldbezeichnung (bzw. Feldkennsatz) zugeordnet, die vom Validierungsformular für Sie bereitgestellt wird. Die Zeichenfolge wird ignoriert, wenn Sie einen Formularmanager verwenden.
errorLabel TextLabel Formularmanager Die Textbezeichnung mit dem Namen errorLabel ist das Fehlerfeld. Sie zeigt die Fehlernachricht an (sofern zutreffend), die während der Validierung eines Formularfelds ausgegeben wird. Die Darstellung des Fehlerfelds ändert sich, wenn ein Fehler auftritt.

Wenn Sie einen Formularmanager verwenden, geben Sie die Textbezeichnung bei der Deklaration des Formularfelds an. Wenn Sie jedoch ein Validierungsformular verwenden, wird die Textbezeichnung für Sie bereitgestellt.

nameLabel TextLabel Formularmanager Eine Formularfeldbezeichnung. Die Einstellung wird ignoriert, wenn Sie ein Validierungsformular verwenden, das eine Bezeichnung bereitstellt und den Wert von displayName dieser Bezeichnung zuordnet.
labelClass String? Zur Verwendung durch Rich-UI Eine CSS-Klasse. Ändern Sie diesen Wert nicht, da er verwendet wird, um die Formularfeldbezeichnung wieder in ihre ursprüngliche Darstellung zu ändern, wenn ein Fehler behoben wurde.

Der Klassenname ist 'EglRuiTextLabel'. Derselbe Klassenname wird verwendet, wenn ein Fehler auftritt, jedoch unter Hinzufügung der folgenden sekundären Klasse: FormErrorLabel.

Wenn Sie mit einem Validierungsformular arbeiten, geben Sie die Werte für controller und displayName an. Wenn Sie einem Formularmanager arbeiten, geben Sie die Werte für controller und nameLabel und optional den Wert für errorLabel an.

Funktionen auf Formularebene

Die Funktionen auf Formularebene rufen controllerspezifische Funktionen auf. Die Reihenfolge der Aufrufe ist umgekehrt zur Reihenfolge der Formularfelder in der Feldgruppe entries.

Ihr Code ruft wahrscheinlich Funktionen zur Validierung, Festschreibung ('Commit') und Publizierung von Daten auf. Ihr Code könnte zum Beispiel die folgende Logik erweitern:
if (employeeForm.isValid())
   employeeForm.commit();
end

Der Controller selbst ruft eine controllerspezifische Funktion validStateSetter am Ende der Validierung auf.

Beachten Sie die Reihenfolge der Ereignisse:
  1. Ihr Aufruf der Funktion isValid auf Formularebene hat für jeden Controller wiederum die folgende Wirkung:
    1. Er ruft die Funktion isValid des Controllers auf, die ihrerseits die Funktionen in validator aufruft, die in der Controllerdefinition referenziert werden. Dieser Prozess beinhaltet auch elementare Validierungen wie zum Beispiel für die Eigenschaft isDecimalDigit des Controllermodells.
    2. Er ruft die Funktion validStateSetter des Controllers auf. Diese Funktion ist standardmäßig die Funktion validStateSetter auf Formularebene.
  2. Wenn alle Controlleranzeigen gültige Daten enthalten, ruft Ihr Code die Funktion commit auf Formularebene auf. Diese Funktion ruft die einzelnen controllerspezifischen Funktionen commit auf, um die Daten in einer Controlleranzeige zu deformatieren und den Wert in ein Controllermodell zu schreiben.
In Anbetracht der oben beschriebenen Reihenfolge könnten Sie eine eigene feldübergreifende Validierung aufrufen, nachdem die Formularvalidierungen erfolgreich abgeschlossen wurden. Ihr Code könnte wie folgt aussehen:
if (employeeForm.isValid())
   if (myValidation())
      employeeForm.commit();
   end
end

Nachfolgend sind die Funktionen auf Formularebene in alphabetischer Reihenfolge aufgeführt:

commit()
Ermöglicht das Festschreiben aller Anzeigen in den zugehörigen Modellen in einem Befehl. Nachdem Sie die Funktion commit der Formularebene aufgerufen haben, können Sie alle Modelldaten an einen Service übertragen.

Die Funktion hat keine Parameter und keinen Rückgabewert.

isValid()
Ruft die controllerspezifischen Funktionen isValid auf.
Die Funktion hat keine Parameter und gibt einen booleschen Wert zurück, um anzugeben, ob die Validierung für alle Formularfelder erfolgreich war.
publish()
Ruft die einzelnen controllerspezifischen Funktionen publish auf, um Daten, die im Controllermodell gespeichert sind, zu formatieren und die formatierten Daten an eine Controlleranzeige zu schreiben. Ihr Code könnte den Befehl publish der Formularebene in einer Rückruffunktion aufrufen, die aufgerufen wird, nachdem Ihr Code Daten empfangen hat, die aus einem Service zurückgegeben wurden.

Die Funktion hat keine Parameter und keinen Rückgabewert.

validate()
Ruft die controllerspezifischen Funktionen validate auf.

Die Funktion hat keine Parameter und gibt einen booleschen Wert zurück, um anzugeben, ob die Validierungen erfolgreich waren, das heißt, ob alle controllerspezifischen Funktionen validate einen Nullwert oder einen leeren Wert zurückgegeben haben.


Feedback