La sentencia OpenUI permite al usuario interactuar con un programa cuya interfaz se basa en consoleUI. La sentencia define eventos de usuario y programa y especifica cómo responder a cada uno de ellos.
La sintaxis de la sentencia OpenUI es la siguiente:
allowAppend = yes, allowDelete = no
Indica cómo enlazar una serie de variables con una serie de ConsoleFields; concretamente, si se debe emparejar cada nombre de variable con un nombre de ConsoleField. El nombre de variable se lista en BindClause y el nombre de ConsoleField es el valor del campo Nombre de ConsoleField.
Independientemente de que los consoleFields se listen explícitamente en la sentencia openUI o se listen en una declaración dictionary, su orden define el orden de los consoleFields con la finalidad de enlazar por posición. (Su orden también define el orden de tabulación para la entrada del usuario, como se ha indicado en el apartado Componentes ConsoleUI y variables relacionadas.)
Si un consoleField se lista o se encuentra en una declaración dictionary cuando en la lista de enlaces no hay ninguna variable coincidente, la entrada del usuario en el consoleField se pasa por alto. De forma parecida, se pasa por alto una variable de enlace que no coincida con ningún campo.
Como mínimo un consoleField y una variable deben estar enlazados durante la ejecución; de lo contrario, se produce un error.
Este texto de ayuda está destinado al mandato openUI. En algunos casos, el texto asociado con la tecla es más específico del contexto. Por ejemplo, cada opción de un menú puede tener su propio mensaje de ayuda.
El paquete de recursos se identifica mediante la variable de sistema ConsoleLib.messageResource, tal como se describe en messageResource.
Especifica si la finalidad de la sentencia openUI es crear criterios de selección que se utilizarán en una sentencia SQL, como por ejemplo SELECT.
La sentencia openUI debe enlazarse a una única variable de un tipo de carácter. Dicha variable no proporciona valores iniciales para los ConsoleFields, pero sí recibe la entrada del usuario, que está formateada para utilizarla en una cláusula SQL WHERE.
Si el valor de setInitial es no, los valores de las variables enlazadas se extraen y visualizan inicialmente.
Para obtener información detallada sobre enlaces, consulte el apartado de OnEventBlock (más adelante), así como el apartado Componentes de ConsoleUI y variables relacionadas.
OnEvent(claseEvento: calificadoresEvento)
Las sentencias EGL que responden a un determinado evento están entre la cabecera OnEvent y la siguiente cabecera OnEvent (si existe), como se muestra más adelante en un ejemplo:
Ningún bloque de evento está disponible para una ventana.
openUI {bindingByName=yes} activeForm bind firstName, lastName, ID OnEvent(AFTER_FIELD:"ID") if (employeeID == 700) firstName = "Angela"; lastName = "Smith"; end end
Puede finalizar una sentencia openUI emitiendo una sentencia exit con el formato exit openUI.
ON_KEY:("a", "ESC")
Este evento está disponible para todas las variables ConsoleUI excepto las basadas en Window.
BEFORE_FIELD:("field01", "field02")
AFTER_FIELD:("field01", "field02")
El usuario puede editar la fila antes de comprometer los cambios a una base de datos, como ocurre generalmente en el manejador AFTER_INSERT.
MENU_ACTION:("item01", "item02")
Un consoleField se asocia a una columna de tabla SQL estableciendo la propiedad SQLColumnName de ConsoleField, y el usuario debe establecer la propiedad dataType de consoleField, como se indica en el apartado Propiedades y campos de ConsoleField.
> 25
= 'Sarasota'
AGE > 28 AND CITY = 'Sarasota'
Como se muestra en el ejemplo, EGL coloca el operador AND entre cada cláusula que proporciona el usuario.
La tabla siguiente muestra la entrada de usuario válida y la cláusula resultante. La expresión tipos SQL simples hace referencia a tipos SQL que no son estructurados ni de tipo LOB.
Símbolo | Definición | Tipos de datos soportados | Ejemplo | Cláusula resultante (para una columna de caracteres llamada C) | Cláusula resultante (para una columna numérica llamada C) |
---|---|---|---|---|---|
= | Igual a | Tipos SQL simples | =x, ==x | C = 'x' | C = x |
> | Mayor que | Tipos SQL simples | >x | C > 'x' | C > x |
< | Menor que | Tipos SQL simples | <x | C < 'x' | C < x |
>= | No menor que | Tipos SQL simples | >=x | C >= 'x' | C >= x |
<= | No mayor que | Tipos SQL simples | <=x | C <= 'x' | C <= x |
<> o != | No igual a | Tipos SQL simples | <>x o !=x | C != 'x' | C != x |
.. | Rango | Tipos SQL simples | x.y o x..y | C BETWEEN 'x' AND 'y' | C BETWEEN x AND y |
* | Comodín para String (como se describe en la tabla siguiente) | CHAR | *x o x* o *x* | C MATCHES '*x' | no aplicable |
? | Comodín de un solo carácter (como se describe en la tabla siguiente) | CHAR | ?x, x?, ?x?, x?? | C MATCHES '?x' | no aplicable |
| | O lógico | Tipos SQL simples | x|y | C IN ('x', 'y') | C IN (x, y) |
El signo igual (=) puede significar IS NULL; y el signo no igual (!= o <>) puede significar IS NOT NULL.
Una cláusula MATCHES es el resultado de la especificación por parte del usuario de uno de los caracteres comodín descritos en la tabla siguiente.
Símbolo | Efecto |
* | Coincide con cero o más caracteres. |
? | Coincide con un solo carácter cualquiera. |
[ ] | Coincide con cualquier carácter encerrado entre corchetes. |
- (guión) | Cuando se utiliza entre caracteres que están encerrados entre corchetes, un guión coincide con cualquier carácter del rango entre los dos caracteres, ambos inclusive. Por ejemplo, [a-z] coincide con cualquier letra en minúsculas o carácter especial dentro del rango en minúsculas. |
^ | Cuando se utiliza entre corchetes, un signo de intercalación inicial coincide con cualquier carácter no incluido dentro de los corchetes. Por ejemplo, [^abc] coincide con cualquier carácter excepto a, b, c. |
\ | Es el carácter de escape; el siguiente carácter es un literal. Permite incluir cualquiera de los caracteres comodín en la serie sin tener el efecto de comodín. |
Cualquier otro carácter fuera de los corchetes | Debe coincidir exactamente. |
Conceptos relacionados
Interfaz de usuario de consola
Consulta relacionada
Biblioteca ConsoleLib de EGL
Componentes de ConsoleUI y variables relacionadas
Opciones de pantalla ConsoleUI para UNIX
Programa de UI de texto en formato fuente EGL
Tareas relacionadas
Crear una interfaz con consoleUI