VGUIRecord-Eigenschaften verwenden

Die Beziehung zwischen den Feldeigenschaften legt fest, wie EGL Felder aus dem VGUIRecord in HTML-Steuerelemente in einer JSP umsetzt.

Bei den meisten UI-Steuerelementen muss die Eigenschaft uiType auf einen der folgenden Werte gesetzt werden:

In der folgenden Tabelle wird gezeigt, wie die einzelnen HTML-Steuerelemente erstellt werden.

Tabelle 1. HTML-Steuerelemente
HTML-Steuerelement Feld ist Feldgruppe? uiType Feldlänge

selectedIndex
Item

Feldwert
Textfeld N input oder inputOutput <=80 Zeichen Nicht vorhanden Eingangsanzeige
Textbereich N input oder inputOutput > 80 Zeichen Nicht vorhanden Eingangsanzeige (zwischen den Tags <textarea> und </textarea>)
Optionsfelder J input oder inputOutput Nicht vorhanden Numerisches Feld Nicht verwendet
Kontrollkästchen J input oder inputOutput Nicht vorhanden Numerische Feldgruppe Nicht verwendet
Kombinationsfeld (Einzelauswahl) J output Nicht vorhanden Numerisches Feld Einträge in Kombinationsfeld
Kombinationsfeld (Mehrfachauswahl) J output Nicht vorhanden Numerische Feldgruppe Einträge in Kombinationsfeld
Der folgende Code erstellt eine Gruppe von drei Optionsfeldern:
10 ID  INT [3] { 
		displayName = "First option: \nSecond option: \nThird option:" ,
		selectedIndexItem = SELECTEDID,
		uiType = input
		} = [1, 2, 3];
		
10 SELECTEDID int {
		uiType = none
		};

Das angezeigte Steuerelement sieht wie das folgende Beispiel aus:

Eine Gruppe von drei Optionsfeldern mit der Beschriftung "First option" usw. Auf jede Beschriftung folgt ein Textfeld mit einer Zahl.

Beachten Sie, dass auf jede Beschriftung eines Optionsfelds ein Textfeld folgt, das den Wert des entsprechenden Feldgruppenmembers enthält. Diese Textfelder sind ein Artefakt der VisualAge Generator-Implementierung; EGL behält dieses Verhalten aus Kompatibilitätsgründen bei. Da die Variable, mit der die Anzeige generiert wird, über drei INT-Member und über eine Eigenschaft uiType vom Typ 'input' verfügt, könnten Sie theoretisch neue Werte für diese Member eingeben; in der Praxis besteht dazu allerdings keine Veranlassung.

Wenn Sie SELECTEDID in eine Feldgruppe ändern, erstellt der Code eine Webseite, die Kontrollkästchen anstelle von Optionsfeldern enthält:
10 SELECTEDID int [3] {
		uiType = none
		};
Wenn Sie diesen Code verwenden und uiType auf 'output' setzen, erstellt EGL anstelle von Optionsfeldern oder Kontrollkästchen ein Kombinationsfeld. In diesem Fall ist es sinnvoll, auch den Anzeigenamen zu ändern, da der Benutzer einen Wert aus der Feldgruppe und nicht aus der Eingabeaufforderung auswählt. Wenn SELECTEDID eine Feldgruppe ist, kann der Benutzer die Umschalttaste gedrückt halten und eine Mehrfachauswahl treffen. Wenn SELECTEDID nur aus einem INT besteht (siehe folgender Code), kann der Benutzer nur einen einzelnen Wert auswählen:
10 ID  INT [3] { 
		displayName = "Pick a number:" ,
		selectedIndexItem = SELECTEDID,
		uiType = output
		} = [1, 2, 3];
		
10 SELECTEDID int {
		uiType = none
		};

Das angezeigte Steuerelement sieht wie das folgende Beispiel aus:

Ein Kombinationsfeld mit den Nummern 1 - 3 als Optionen.

Andere Steuerelemente

Andere Werte der Eigenschaft uiType erstellen andere HTML-Artefakte. Im folgenden Beispiel wird ein Feld aus einer VGUIRecord-Quellendatei verwendet:
10 MYLINK char(32) {
   displayName = "MyLink",
   uiType = programLink,
   @programLinkData {
      programName = "DEST_PGM",
      uiRecordName = "DEST_PGE",
      newWindow = no,
      linkParms = [
         @linkParameter { name = "PARM", value="ParmData" },
         @linkParameter { name = "NAME", valueRef=NAME },
         @linkParameter { name = "ID", value="107" }
      ]
   }
};

Hier legt der UI-Typ programLink fest, dass der Inhalt der Eigenschaft displayName ("MyLink") als Link angezeigt wird. Dieser Link verweist auf das Programm in der Eigenschaft programName ("DEST_PGM"), das die Seite in der Eigenschaft uiRecordName ("DEST_PGE") startet. Die Namen und Werte in den einzelnen @linkParameter-Eigenschaften werden in einer Abfragezeichenfolge mit der URL des Zielprogramms übergeben.

Das folgende Beispiel zeigt ein Feld, das einen <FORM>-Tag und den gesamten zugehörigen Inhalt im Browser generiert:
10 MYFORM01   char(60) {
   displayName = "MyForm01",
   uiType = uiForm,
   @programLinkData {
      programName = "DEST_PGM",
      uiRecordName = "DEST_PGE",
      newWindow = no,
      linkParms = [
         @linkParameter { name = "PARM", value="ParmData" }
      ]
   }
};
Unterstrukturfelder unter MYFORM01 deklarieren Felder innerhalb des Formulars, wie beispielsweise eines der zuvor erwähnten Steuerelemente 'input' oder 'output' oder die folgende Übergabeschaltfläche:
20 BUTTON1 char(8) {
   displayName = "Submit",
   uiType = submit
   } = "SUBMIT";

Bei der Übergabe des Formulars durch den Benutzer ruft das VGWebTransaction-Programm das Programm in der Eigenschaft programName mithilfe des Befehls show auf. Informationen darüber, wie Feldwerte an das aufgerufene Programm übergeben werden, finden Sie unter 'show' im Handbuch EGL Language Reference.


Feedback