Un componente dataTable se declara en un archivo fuente EGL, como se describe en la
sección Proyectos, paquetes y archivos EGL. Este componente es un componente generable, lo que
significa que debe estar en el nivel superior del archivo y debe tener el mismo nombre que el
archivo.
Una dataTable se relaciona con un programa mediante la declaración de uso del programa o, en el
caso de la única tabla de mensajes del programa, por la propiedad
msgTablePrefix del programa.
Una dataTable está relacionada con un pageHandler por la declaración de uso del pageHandler.
Este es un ejemplo de un componente dataTable:
DataTable myDataTablePart type basicTable
{
{ shared = yes }
myColumn1 char(10);
myColumn2 char(10);
myColumn3 char(10);
{ contents = [
[ "row1 col1", "row1 col2", "row1 " + "col3" ] ,
[ "row2 col1", "row2 col2", "row2 " + "col3" ] ,
[ "row3 col1", "row3 col2", "row3 col3" ]
]
}
end
El diagrama de sintaxis para un componente dataTable es el siguiente:
- DataTable nombreComponenteTablaDatos ... end
- Identifica el componente como una dataTable y especifica el nombre del componente. Para conocer las reglas de denominación, consulte Convenios de denominación.
- basicTable (el valor por omisión)
- Contiene información que se utiliza en la lógica del programa; por ejemplo, una lista
de países y códigos relacionados.
- matchInvalidTable
- Se especifica en la propiedad validatorDataTable de un campo de texto
para indicar que la entrada del usuario debe ser distinta a cualquier valor de la primera columna
de la dataTable. El entorno de ejecución de EGL actúa de la siguiente manera como
respuesta a una
anomalía de validación:
- Accede a la tabla referenciada en la propiedad validatorDataTable
- Recupera el mensaje identificado por la propiedad
validatorDataTableMsgKey específica del campo de texto
- Visualiza el mensaje en el campo de texto identificado en la propiedad
msgField específica del formulario
- matchValidTable
- Se especifica en la propiedad validatorDataTable de un campo de texto
para indicar que la entrada del usuario debe coincidir con un valor de la primera columna de la
dataTable. El entorno de ejecución de EGL actúa de la siguiente manera como respuesta a
una anomalía de validación:
- Accede a la tabla referenciada en la propiedad validatorDataTable
- Recupera el mensaje identificado por la propiedad
validatorDataTableMsgKey específica del campo de texto
- Visualiza el mensaje en el campo identificado en la propiedad
msgField específica del formulario
- msgTable
- Contiene mensajes de tiempo de ejecución. Se presenta un mensaje bajo la siguiente circunstancia:
- La tabla es la tabla de mensajes del programa. La asociación de DataTable y programa
se produce si la propiedad del programa msgTablePrefix hace
referencia al prefijo de tabla, que es el primero de los cuatro
caracteres en el nombre de la DataTable. Al denominar la tabla de mensajes, debe incluir
un código de tres caracteres para representar el idioma nacional, como se indica en la
tabla que se muestra a continuación.
Idioma |
Código de idioma nacional |
Portugués de Brasil |
PTB |
Chino simplificado |
CHS |
Chino tradicional |
CHT |
Inglés, mayúsculas |
ENP |
Inglés, EE.UU. |
ENU |
Francés |
FRA |
Alemán |
DEU |
Italiano |
ITA |
Japonés, Katakana (juego de caracteres de un solo byte) |
JPN |
Coreano |
KOR |
Español |
ESP |
Alemán de Suiza |
DES |
- El programa recupera y presenta un mensaje mediante uno de dos mecanismos, tal como se describe
en ConverseLib.displayMsgNum y ConverseLib.validationFailed.
- rangeChkTable
- Se especifica en la propiedad validatorDataTable de un campo de texto
para indicar que la entrada del usuario debe coincidir con un valor se esté entre los valores de la
primera y la segunda columnas de, como mínimo, una fila de tabla de datos. (El rango es inclusivo; la entrada del usuario es válida si coincide con un valor
de la primera o segunda columna de cualquier fila.) El entorno de ejecución de EGL actúa
de la siguiente manera como respuesta a una anomalía de validación:
- Accede a la tabla referenciada en la propiedad validatorDataTable
- Recupera el mensaje identificado por la propiedad
validatorDataTableMsgKey específica del campo de texto
- Visualiza el mensaje en el campo identificado en la propiedad
msgField específica del formulario
- "alias"
- Una serie incorporada a los nombres de la salida generada. Si no se especifica un alias, en su
lugar se utiliza el nombre de dataTable .
- shared
- Indica si múltiples programas de la misma unidad de ejecución utilizan la
misma instancia de una dataTable. Los valores válidos son yes y
no (valor por omisión). Si el valor de
shared es no, cada programa de la unidad de
ejecución tendrá una copia exclusiva de la dataTable.
La propiedad
indica si todos los programas de la misma unidad de ejecución utilizan la misma instancia de una
dataTable. Si el valor de shared es no, cada
programa de la unidad de ejecución tendrá una copia exclusiva de la dataTable.
Los cambios realizados
durante la ejecución son visibles para cada programa que tenga acceso a la dataTable y los cambios
permanecen hasta que se descarga la dataTable. En la mayoría de casos, el valor de la propiedad
resident (descrito más adelante) determine cuándo se descarga
la dataTable; para conocer más detalles, consulte la descripción de esa propiedad.
- resident
- Indica si la dataTable se conserva en la memoria incluso después de finalizar cada programa que
ha accedido a la dataTable.
Los valores válidos son yes y no.
El valor predeterminado es no.
Si establece la propiedad
resident en sí, la dataTable se comparte
independientemente del valor de shared.
Las ventajas de que la
dataTable sea residente son las siguientes:
- La dataTable retiene los valores grabados en ella por los programas que se ejecutaron
anteriormente
- La tabla está disponible para su acceso inmediato sin proceso de carga adicional
Una dataTable residente permanece cargada hasta que la unidad de
ejecución finaliza. Una dataTable no residente, no obstante, se descarga cuando el programa que la
utiliza finaliza.
Nota: Una dataTable se carga en la memoria (si es necesario) en el primer acceso
a un programa, no cuando el entorno de ejecución de EGL procesa una declaración de uso.
- content
- El valor de las células de la dataTable, cada una de las cuales es de una de las siguientes
clases:
- Un literal numérico
- Un literal de serie o una concatenación de literales de serie
La clase de contenido de una fila dada debe ser compatible con los campos de estructura de
nivel superior, cada uno de los cuales representa una definición de columna.
- campoEstructura
- Un campo de estructura, como se describe en la sección Campo de estructura en formato fuente
EGL.