Componente de formulario en formato fuente EGL

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.

A continuación se ofrece un ejemplo de formulario de texto:
  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  
A continuación se ofrece un ejemplo de formulario de impresión:
  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 diagrama de un componente de formulario es el siguiente:

Diagrama de sintaxis para un componente de formulario
Form nombreFormulario ... end
Identifica el componente como formulario y especifica el nombre del componente. Para conocer las normas de denominación, consulte el apartado Convenios de denominación.
textForm
Indica que el formulario es de texto.
propiedadFormularioTexto
Una propiedad de formulario de texto. Para obtener detalles, consulte el apartado Formulario de texto.
campoFormularioTexto
Un campo de formulario de texto. Para obtener detalles, consulte el apartado Campos de formulario.
printForm
Indica que el formulario es de impresión.
propiedadFormularioImpresión
Una propiedad de formulario de impresión. Para obtener detalles, consulte el apartado Formulario de impresión.
campoFormularioImpresión
Un campo de formulario de impresión. Para obtener detalles, consulte el apartado Campos de formulario.

Propiedades de formulario de texto

Las propiedades de formulario de texto son las siguientes:
formSize = [filas, columnas]
Número de filas y columnas del área de presentación en línea. Esta propiedad es obligatoria.

El valor de columna es equivalente al número de caracteres de un solo byte que pueden visualizarse en el área de presentación.

position = [fila, columna]
Fila y columna en las que se visualiza el formulario en el área de presentación. Si omite esta propiedad, el formulario será flotante y se visualizará en el área flotante, en la próxima línea libre en la que quepa todo el formulario del área flotante.
validationBypassKeys = [valorTeclaSalto]
Identifica una o varias pulsaciones de teclas que provocan que el entorno de ejecución EGL pase por alto validaciones de campos de entrada. Esta propiedad resulta de utilidad para reservar una pulsación que finaliza el programa con rapidez. La opción valorTeclaSalto es la siguiente:
pfn
El nombre de una tecla F o PF, que incluye un número entre 1 y 24
Nota: Las teclas de función de un teclado de PC son con frecuencia teclas F, como por ejemplo F1, pero EGL utiliza la terminología IBM PF a fin de que (por ejemplo) F1 se denomine PF1.
Si desea especificar más de un valor de tecla, delimite el conjunto de valores con paréntesis y separe cada uno de los valores del siguiente con una coma, como en el ejemplo siguiente:
  validationBypassKeys = [pf3, pf4]  
helpKey = "valorTeclaAyuda"
Identifica una pulsación de tecla del usuario que provoca que el entorno de ejecución EGL presente un formulario de ayuda al usuario. La opción valorTeclaAyuda es la siguiente:
pfn
El nombre de una tecla F o PF, que incluye un número entre 1 y 24
Nota: Las teclas de función de un teclado de PC son con frecuencia teclas F, como por ejemplo F1, pero EGL utiliza la terminología IBM PF a fin de que (por ejemplo) F1 se denomine PF1.
helpForm = "nombreFormulario"
Nombre del formulario de ayuda específico del formulario de texto.
msgField = "nombreCampo"
Nombre del campo de formulario de texto que visualiza un mensaje en respuesta a un error de validación o en respuesta a la ejecución de ConverseLib.displayMsgNum.
alias = "alias"
Un alias de 8 caracteres como máximo, destinado al entorno de ejecución EGL.

Propiedades de formulario de impresión

Las propiedades de formulario de impresión son las siguientes:
formsize = [filas, columnas]
Número de filas y columnas del área de presentación en línea. Esta propiedad es obligatoria.

El valor de columna es equivalente al número de caracteres de un solo byte que pueden visualizarse en el área de presentación.

position = [fila. columna]
Fila y columna en las que se visualiza el formulario en el área de presentación. Si omite esta propiedad, el formulario será flotante y se visualizará en el área flotante, en la próxima línea libre en la que quepa todo el formulario del área flotante.
msgField = "nombreCampo"
Nombre del campo de formulario de texto que visualiza un mensaje en respuesta a la ejecución de ConverseLib.displayMsgNum.
alias = "alias"
Un alias de 8 caracteres como máximo, destinado al entorno de ejecución EGL.

Campos de formulario

El diagrama de un campo de formulario es el siguiente:


Diagrama de sintaxis de un campo de formulario
*
Indica que el campo es de constante. No tiene ningún nombre sino un valor de constante, que se especifica en la propiedad value específica del campo. Las sentencias del código no pueden acceder al valor de un campo de constante.
propiedadCampo
Una propiedad del campo de formulario de texto. Para obtener información detallada, consulte el apartado Propiedades del campo de formulario de texto.
nombreCampo
Especifica el nombre del campo. Para conocer las normas de denominación, consulte el apartado Convenios de denominación.

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.

apariciones
El número de elementos de una matriz de campos. Sólo están soportadas las matrices unidimensionales. Para obtener detalles, consulte el apartado Para matrices de campos.
tipoPrimitivo
El tipo primitivo asignado al campo. Esta especificación afecta a la longitud máxima, pero cualquier campo numérico se generar como de tipo NUM.

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.

longitud
La longitud del campo, que es un entero que representa el número máximo de caracteres o dígitos que puede contener el campo.
decimales
Para un tipo numérico (BIN, DECIMAL, NUM, NUMC o PACF), puede especificar decimales, que es un entero que representa el número de posiciones después de la coma decimal. El número máximo de posiciones decimales es el menor de dos números: 18 o el número de dígitos declarado como longitud. La coma decimal no se almacena con los datos.
nombreComponenteElementoDatos
El nombre de un componente dataItem que actúa como modelo de formato del campo, como se describe en typeDef. El componente dataItem debe ser visible para el componente de formulario, como se describe en el apartado Referencias a componentes.

Propiedades del campo de formulario de texto

Las propiedades que sólo son útiles en los campos de formulario de texto se describen más adelante. Las siguientes propiedades se utilizan más frecuentemente y también están disponibles:

Para cualquier campo

Las siguientes propiedades son útiles para cualquier campo de un formulario:
position = [fila. columna]
Fila y columna del byte de atributo que precede al campo. Esta propiedad es obligatoria.
value = "literalSerie"
Una serie de caracteres que se visualiza en el campo. Las comillas son necesarias.

Esta propiedad puede especificarse para cualquier elemento; por ejemplo, en una declaración de componente dataItem.

Nota: Si está en vigor la compatibilidad de VisualAge Generator y establece la propiedad de formulario de texto value, el contenido de esa propiedad estará disponible en el programa sólo después de que el usuario haya devuelto el formulario. Por esta razón, no es necesario que el valor establecido en el programa sea válido para el elemento del programa.
fieldLen = longitudEnBytes
Longitud del campo; el número de caracteres de un solo byte que pueden visualizarse en el campo. Este valor no incluye el byte de atributo que lo precede.

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.

Para campos de texto variables

Las siguientes propiedades son útiles para campos de texto variables:
cursor = no, cursor = yes
Indica si el cursor de la pantalla se encuentra al principio del campo cuando el formulario se visualiza por primera vez. Sólo un campo del formulario puede tener la propiedad cursor establecida en yes. El valor por omisión es no.
modified = no, modified = yes
Indica si el programa considerará el campo como modificado, independientemente de que el usuario haya cambiado el valor. Para obtener detalles, consulte el apartado Código de datos modificados y propiedad modified.

El valor por omisión es no.

protect = no, protect = skip, protect = yes
Especifica si el usuario puede acceder al campo. Los valores válidos son los siguientes:
no (el valor por omisión para los campos de variable)
Establece el campo de forma que el usuario pueda sobreescribir el valor en él.
skip (el valor por omisión para los campos de constante)
Establece el campo de forma que el usuario no pueda sobreescribir el valor en él. Además, el cursor pasa por alto el campo en cualquiera de estos casos:
  • El usuario trabaja en el campo anterior por orden de tabulación y pulsa el tabulador o rellena ese campo anterior con contenido; o
  • El usuario trabaja en el campo siguiente por orden de tabulación y pulsa Mayúsculas Tabulador.
yes
Establece el campo de forma que el usuario no pueda escribir encima del valor que haya en él.
validationOrder = entero
Indica la posición del campo en el orden de validación. El orden por omisión en el que se validan los campos es el orden de los campos en la pantalla, de izquierda a derecha y de arriba a abajo.

Para matrices de campos

Las matrices unidimensionales están soportadas en los formularios de texto y de impresión. En una declaración de matriz, el valor de la propiedad occurs es mayor que 1, como en este ejemplo:
  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.

Utilice las siguientes propiedades para variar el comportamiento por omisión:
columns = númeroDeElementos
Número de elementos de matriz en cada fila. El valor por omisión es 1.
linesBetweenRows = númeroDeLíneas
Número de líneas entre cada fila que contiene elementos de matriz. El valor por omisión es 0.
spacesBetweenColumns = númeroDeEspacios
Número de espacios entre cada elemento de matriz. El valor por omisión es 1.
indexOrientation = down, indexOrientation = across
Especifica cómo hace referencia el programa a los elementos de una matriz.
  • Si establece indexOrientation en down, los elementos se numeran de arriba a abajo y luego de izquierda a derecha, de forma que los elementos de una columna determinada queden numerados secuencialmente. Por omisión, el valor de indexOrientation es down.
  • Si establece indexOrientation en across, los elementos se numeran de izquierda a derecha y luego de arriba a abajo, de forma que los elementos de una fila determinada queden numerados secuencialmente.
Puede alterar temporalmente ciertas propiedades de un elemento de matriz. En la siguiente declaración de campo, por ejemplo, la propiedad cursor se altera temporalmente en el segundo elemento de myArray:
  myArray char(10)[5]	
    {position=[4,61], protect=skip, myArray[2] { cursor = yes} };
Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.