Un componente de formulario se declara en un archivo EGL, como se describe en el apartado Formato fuente EGL. Si sólo un grupo de formularios accede a un componente de formulario, es aconsejable que éste esté incorporado al componente formGroup. Si varios grupos grupo de formularios acceden a un componente de formulario, es necesario especificar el componente de formulario en el nivel superior de un archivo EGL.
Form myTextForm type textForm { formsize= [24, 80], position= [1, 1], validationBypassKeys=[pf3, pf4], helpKey="pf1", helpForm="myHelpForm", msgField="myMsg", alias = "form1" } * { position=[1, 31], value="Sample Menu" } ; * { position=[3, 18], value="Activity:" } ; * { position=[3, 61], value="Command Code:" } ; activity char(42)[5] { position=[4,18], protect=skip } ; commandCode char(10)[5] { position=[4,61], protect=skip } ; * { position=[10, 1], value="Response:" } ; response char(228) { position=[10, 12], protect=skip } ; * { position=[13, 1], value="Command:" } ; myCommand char(70) { position=[13,10] } ; * { position=[14, 1], value="Enter=Run F3=Exit"} ; myMsg char(70) { position=[20,4] }; end
Form myPrintForm type printForm { formsize= [48, 80], position= [1, 1], msgField="myMsg", alias = "form2" } * { position=[1, 10], value="Your ID: " } ; ID char(70) { position=[1, 30] }; myMsg char(70) { position=[20, 4] }; end
El valor de columna es equivalente al número de caracteres de un solo byte que pueden visualizarse en el área de presentación.
validationBypassKeys = [pf3, pf4]
El valor de columna es equivalente al número de caracteres de un solo byte que pueden visualizarse en el área de presentación.
Para que el formulario impreso utilice las mismas columnas que en la definición del formulario, especifique no para las impresoras que imprimen un espacio para cada carácter SO o SI y especifique yes para las impresoras que eliminan los caracteres SO o SI de la línea de impresión.
El diagrama de un campo de formulario es el siguiente:
El código puede acceder al valor de un campo con nombre, también llamado campo de variable.
Si un formulario de texto contiene un campo de variable que empieza en una línea y finaliza en otra, el formulario de texto sólo podrá visualizarse en pantallas cuya anchura sea igual a la del formulario.
Los formularios que contienen campos de tipo DBCHAR sólo pueden utilizarse en sistemas y dispositivos que den soporte a juegos de caracteres de doble byte. De forma similar, los formularios que contienen campos de tipo MBCHAR sólo pueden utilizarse en sistemas y dispositivos que den soporte a juegos de caracteres multibyte.
Los tipos primitivos FLOAT, SMALLFLOAT y UNICODE no están soportados para formularios de texto ni de impresión.
Esta sección describe las propiedades que sólo son útiles en los campos de formulario. También existen otras propiedades de interés, como se describe en los apartados Propiedades de presentación de campos, propiedades de formato y Propiedades de validación.
Esta propiedad puede especificarse para cualquier elemento; por ejemplo, en una declaración de componente dataItem.
El valor de fieldLen para campos numéricos debe ser lo suficientemente grande para visualizar el número mayor que el campo pueda contener, además de una coma decimal (si el número tiene posiciones decimales). El valor de fieldLen para un campo de tipo CHAR, DBCHAR, MBCHAR o UNICODE debe ser lo suficientemente grande para contener los caracteres de doble byte, así como los caracteres de desplazamiento a teclado ideográfico y a teclado estándar.
El valor por omisión de fieldLen es el número de bytes necesario para visualizar el mayor número posible para el tipo primitivo, incluidos todos los caracteres de formato.
La propiedad detectable está disponible solamente para programas COBOL y solamente para campos de formulario de texto cuya propiedad intensity no sea invisible.
Para evitar que el usuario cambie el carácter designador en un campo de variable, establezca la propiedad protect en yes o skip.
Los terminales de IBM 3278 y 3279 dan soporte a ambas clases de detecciones. Los terminales de IBM 3277 solamente dan soporte a la detección retardada. Por lo general, se recomienda revisar la documentación de los terminales o emuladores que desee soportar.
El valor por omisión es no.
myArray char(1)[3];
Los elementos de la matriz se colocan en relación a la situación especificada para el primer elemento de la matriz. El comportamiento por omisión es colocar los elementos verticalmente en filas consecutivas.
myArray char(10)[5] {position=[4,61], protect=skip, myArray[2] { cursor = yes} };