Tutor de comandos de interfaz y acciones
Última actualización
Última actualización
Este tutor muestra cómo es posible interactuar, tanto desde procesos como desde eventos de interfaz de objetos, con el interfaz de la aplicación.
Podemos interactuar con las acciones, con los objetos y subobjetos incluidos en los docks del marco principal, con distintos tipos de objeto, etc. Este tutor es una muestra de cómo podemos interactuar con el interfaz de nuestras aplicaciones tanto desde proceso como desde manejadores de evento de interfaz. Para ello se hace uso del grupo de comandos de instrucción de proceso de interfaz.
El tutor está ha sido estructurado en función de los objetos con los que podemos interactuar. Explicaremos cómo utilizarlo en ejecución e identificando dónde podemos encontrar los distintos objeto en edición.
El formulario que vemos en pantalla es el formulario TUT_INT_ACC, que encontraremos dentro de la carpeta de objetos de este tutor en el proyecto de datos de vTutor.
En la parte superior del formulario principal se incluyen botones para acceder a las distintas opciones de pruebas.
A la derecha se muestran dos docks: un dock que contiene un formulario llamado “saludo” y otro que contiene una rejilla de clientes.
A continuación iremos explicando cada una de ellas.
Nos permite interactuar con acciones usadas en el proyecto. Podemos realizar las mismas pruebas tanto desde procesos declarados en el proyecto como desde manejadores de evento de interfaz declarados en este formulario. Todos los procesos disparados desde este formulario se encuentran localizados en la carpeta de objetos de este tutor en el proyecto de datos de vTutor.
Todos los eventos de interfaz disparados están incluidos en el formulario TUT_INT_ACC_ACC contenido en esa misma carpeta.
En este caso todos ellos actuarán sobre la acción clientes por nombre de la toolbar que se activa cuando ejecutamos el tutor.
A continuación pasamos a describir cada una de las opciones disponibles.
Habilita la acción que dispara la búsqueda de clientes. Para ello se hace uso del comando de instrucción de proceso interfaz: habilitar acción. Si la acción estuviese deshabilitada, al pulsar este botón se habilitaría nuevamente en la toolbar.
Deshabilita la acción que dispara la búsqueda de clientes. Para ello se hace uso del comando de instrucción de proceso Interfaz: deshabilitar acción. Al pulsar este botón se deshabilitaría la opción correspondiente de la toolbar principal.
Ejecuta la acción que dispara la búsqueda de clientes. Para ello se hace uso del comando de instrucción de proceso interfaz: ejecutar acción.
Comprueba si está visible o no la acción que dispara la búsqueda de clientes. Para ello se hace uso del comando de instrucción interfaz: ¿está visible la acción?.
Comprueba si está habilitada o no la acción que dispara la búsqueda de clientes. Para ello se hace uso del comando de instrucción interfaz: ¿está habilitada la acción?.
Muestra la acción que dispara la búsqueda de clientes. Para ello se hace uso del comando de instrucción de proceso interfaz: mostrar acción. Si la acción estuviese oculta, al pulsar este botón aparecería nuevamente en la toolbar.
Oculta la acción que dispara la búsqueda de clientes. Para ello se hace uso del comando de instrucción de proceso interfaz: ocultar acción. Al pulsar este botón la acción desaparecerá de la toolbar.
Nos permitirá intentar actuar con los docks declarados dentro del marco principal del proyecto. Todos los procesos disparables desde este formulario interactúan con el dock llamado TUT_TES_INT_SAL.
Todos los procesos disparados desde este formulario se encuentran localizados en la siguiente carpeta de objetos del de este tutor del proyecto de aplicación de vTutor.
Los manejadores de evento de interfaz se encuentran todos asociados al formulario TUT_INT_ACC_MAR, que encontraremos también dentro de la carpeta de objetos específicos de este tutor.
A continuación pasamos a describir cada una de las opciones disponibles:
Se trata de un proceso que mediante el comando interfaz: establecer foco lleva el foco al control de edición incluido en el dock "saludo".
Se trata de un proceso que mediante el comando interfaz: quitar foco quita el foco del control de edición incluido en el dock “saludo”.
Se trata de un proceso que mediante el comando interfaz: deshabilitar deshabilita el botón incluido en el dock “saludo”.
Se trata de un proceso que mediante el comando interfaz: habilitar habilita el botón incluido en el dock “saludo”.
Se trata de un proceso que mediante el comando interfaz: deshabilitar deshabilita el formulario incluido en el dock “saludo”.
Se trata de un proceso que mediante el comando interfaz: habilitar habilita el formulario incluido en el dock saludo.
Se trata de un proceso que mediante el comando interfaz: ¿es visible el dock? comprueba si el dock “saludo” es o no visible.
Se trata de un proceso que mediante el comando interfaz: ¿está habilitado? comprueba si el formulario incluido en el dock “saludo” está o no habilitado.
Se trata de un proceso que mediante el comando interfaz: ocultar el dock oculta el dock “saludo”.
Se trata de un proceso que mediante el comando interfaz: mostrar el dock hace visible el dock “saludo”.
Se trata de un proceso que mediante el comando interfaz: establecer hoja de estilo CSS aplica un css al formulario incluido en el dock “saludo”.
Se trata de un proceso que mediante el comando interfaz: establecer hoja de estilo CSS quita el css aplicado en el proceso anterior al formulario incluido en el dock "saludo".
Además del dock "saludo" se incluye otro dock que contiene una lista de clientes. Este manejador de evento de interfaz que mediante el uso de los comandos interfaz: procesar e interfaz: añadir ficha a la multi-selección, muestra en la rejilla incluida en el dock de la lista de clientes los clientes que hayamos seleccionado en la rejilla incrustada en el formulario en curso.
El comando interfaz: limpiar la multi-selección lo que hace es desmarcar los registros seleccionados en la rejilla incrustada en el formulario en curso.
Manejador de evento de interfaz que mediante el uso de los comandos interfaz: procesar e interfaz: quitar ficha de la multi-selección quita, en la rejilla incluida en el dock “lista de clientes”, la selección de los clientes que hayamos seleccionado en la rejilla incrustada en el formulario en curso.
El comando interfaz: limpiar la multi-selección lo que hace es desmarcar los registros seleccionados en la rejilla incrustada en el formulario en curso.
Evento de interfaz que mediante el uso del comando interfaz: limpiar la multi-selección, quita las selección de los registros que haya seleccionados en la rejilla incluida en el dock “lista de clientes”.
Evento de interfaz que mediante el uso del comando interfaz: formulario de alta presenta el formulario asociado al evento de alta en la rejilla incluida en el dock llamado “lista de clientes”.
Evento de interfaz que mediante el uso del comando interfaz: formulario de modificación presenta el formulario asociado al evento de modificación en la rejilla incluida en el dock “lista de clientes”. Para que este evento sea funcional será necesario tener seleccionado un elemento en dicha rejilla.
Evento de interfaz que mediante el uso del comando interfaz: formulario de baja presenta el formulario asociado al evento de baja en la rejilla incluida en el dock “lista de clientes”. Para que este evento sea funcional será necesario tener seleccionado un elemento en dicha rejilla.
Evento de interfaz que mediante el uso del comando interfaz: obtener la multi-selección, presenta la lista de los elementos seleccionados en la rejilla incluida en el dock “lista de clientes”.
Evento de interfaz proceso que mediante el comando interfaz: ocultar oculta durante unos segundos el marco principal de la aplicación.
Se trata de un ejemplo que nos muestra cómo podemos interactuar con los distintos objetos contenidos en un objeto tipo multivista. En este ejemplo, el multivista está compuesto por dos rejillas, una de Clientes y otra de Contactos de clientes.
Todos los eventos son disparados desde el formulario TUT_INT_ACC_MUL, que encontraremos dentro de la carpeta de objetos específicos de este tutor.
Las opciones disponibles son:
Se trata de un evento de interfaz que mediante el comando interfaz: establecer hoja de estilo CSS aplica un css a la primera rejilla del multivista (Clientes).
Se trata de un evento de interfaz que mediante el comando interfaz: establecer hoja de estilo CSS quita el css aplicado en el proceso anterior a la primera rejilla del multivista (Clientes).
Evento de interfaz proceso que mediante el comando interfaz: mostrar hace visible la segunda rejilla del multivista (Contactos).
Evento de interfaz proceso que mediante el comando interfaz: ocultar oculta la segunda rejilla del multivista (Contactos).
Se trata de un evento de interfaz que mediante el comando interfaz: ¿es visible? comprueba si la rejilla de Contactos del objeto multivista está o no visible.
Se trata de un evento de interfaz que mediante el comando interfaz: habilitar habilita la rejilla de contactos del multivista.
Se trata de un evento de interfaz que mediante el comando interfaz: deshabilitar deshabilita la rejilla de contactos del multivista.
Se trata de un evento de interfaz que mediante el comando interfaz: ¿está habilitado? comprueba si la rejilla de contactos del objeto multivista está o no habilitada.
Se trata de un evento de interfaz que mediante el comando interfaz: establecer foco activa el foco de la rejilla de contactos del multivista.
Se trata de un evento de interfaz que mediante el comando interfaz: quitar foco quita el foco de la rejilla de contactos del multivista.
Se trata de un proceso que mediante el comando interfaz: procesar recorre los registros seleccionados en las dos rejillas del multivista y presenta un mensaje con el resultado.
Evento de interfaz que mediante el uso del comando interfaz: formulario de alta presenta el formulario asociado al evento de alta en la rejilla de contactos del multivista.
Evento de interfaz que mediante el uso del comando interfaz: formulario de modificación presenta el formulario asociado al evento de modificación de la rejilla de contactos del multivista. Para que este evento sea funcional será necesario tener seleccionado un elemento en dicha rejilla.
Evento de interfaz que mediante el uso del comando interfaz: formulario de baja presenta el formulario asociado al evento de baja de la rejilla de contactos del multivista. Para que este evento sea funcional será necesario tener seleccionado un elemento en dicha rejilla.
Evento de interfaz que mediante el uso del comando interfaz: obtener la multi-selección devuelve los registros seleccionados en la rejilla de contactos del multivista.
Evento de interfaz que mediante el uso del comando interfaz: limpiar la multi-selección quita la selección de los registros seleccionados previamente en la rejilla de contactos del multivista.
Se trata de un ejemplo que nos muestra cómo podemos interactuar con controles incluidos dentro de subcontroles distintos de un formulario, en este caso, dentro de un separador formularios. En este caso operaremos con rejillas incluidas en distintos separadores y atraparemos señales disparadas desde los formularios incluidos en los separadores.
El formulario donde se ha programado se llama TUT_INT_ACC_SEP y lo encontraremos dentro de la carpeta de los objetos específicos de este tutor.
Las opciones disponibles son:
Manejador de evento de interfaz que mediante el uso de los comandos interfaz: procesar e interfaz: añadir ficha a la multi-selección, muestra en la rejilla incluida en el subformulario “Rejilla 2” los registros que hayamos seleccionado en la rejilla incrustada en el subformulario “Rejilla 1”.
El comando interfaz: limpiar la multi-selección lo que hace es desmarcar los registros seleccionados en la rejilla incrustada en el formulario en curso.
Evento de interfaz que mediante el uso de los comandos interfaz: procesar e interfaz: quitar ficha de la multi-selección quita, en la rejilla incluida en el separador “Rejilla 2”, la selección de los clientes que hayamos seleccionado en la rejilla incrustada en el subformulario “Rejilla 1”.
El comando interfaz: limpiar la multi-selección lo que hace es desmarcar los registros seleccionados en la rejilla incrustada en el formulario en curso.
Evento de interfaz que mediante el uso del comando interfaz: limpiar la multi-selección desmarca los registros que se encuentren seleccionados en la rejilla del subformulario “Rejilla 2”.
Evento de interfaz que mediante el uso del comando interfaz: habilitar el subcontrol del contenedor de formularios inhabilita el subformulario “Rejilla 2”, esto es, lo oculta detrás del otro y no deja acceder al mismo. Este comando se usa tanto para habilitar como para inhabilitar un subformulario, haciendo uso para ello de la condición que se establezca en el parámetro Fórmula condición. En dicho parámetro debemos especificar una expresión condicional. Si el resultado de su evaluación es 1, el control será habilitado, si es 0 será inhabilitado. En este ejemplo, hemos puesto como condición directamente un 0, lo que hará que el formulario sea inhabilitado.
Al ejecutar el evento el subformulario será inhabilitado y no podrá accederse a él.
El evento disparado en este caso es idéntico al anterior, con la diferencia que en el parámetro “fórmula condición” se ha establecido el valor 1.
Evento de interfaz que mediante el uso del comando interfaz: ¿está habilitado el subcontrol del contenedor de formularios? comprueba si el subformulario “Rejilla 2” está o no inhabilitado. Devolverá un 1 si el subformulario está habilitado o un 0 si no lo está.
En el formulario TUT_INT_ACC_SEP hemos declarado un evento de interfaz llamado INT_PUL_BTN_SUBFRM_01 que lo que hace es modificar una variable local del formulario con el texto siguiente:
El contenido de esta variable local es pintada en la parte inferior del formulario TUT_INT_ACC_SEP. El formulario tiene declarada una conexión de evento que se dispara con la señal botón pulsado asociada al botón incluido en el subformulario TUT_INT_ACC_SEP_SUB_1 que dispara este evento.
De este modo, cuando el usuario pulse el botón incluido en el subformulario de la primera pestaña, se disparará este evento y se mostrará el mensaje en la parte inferior del formulario TUT_INT_ACC_SEP.
Hemos programado subobjetos idénticos para atrapar la pulsación del botón incluido en el otro subformulario incluido en el separador.
El formulario de este tutor se llama TUT_INT_ACC_ACE y lo encontraremos dentro de la carpeta de objetos específicos de este tutor.
Este formulario incluye una rejilla de Clientes, que tiene asignado el mismo formulario en las propiedades formulario de alta, formulario de modificación y formulario de baja. Este formulario se llama CLT_M_TUT_INT_ACC y lo encontraremos en la carpeta de objetos específicos de este tutor.
El evento usa el comando de instrucción interfaz: guardar ficha en alta o modificación. Este comando lo que hace es guardar cambios en la ficha que está siendo editada pero mantiene abierto el formulario para que el usuario pueda seguir editándola.
El evento usa el comando de instrucción interfaz: aceptar. Este comando lo que hace es guardar cambios en la ficha que está siendo editada y cierra el formulario.
Existe señales específicas para botones. En la carpeta del tutor encontraremos el formulario PED_MEM_TUT_INT_ACC. En dicho formulario creamos un manejador de evento llamado PRE_ACE para controlar que no se deje vacío el campo CLIENTE del pedido:
Con la señal previo a la ejecución asociada al botón Aceptar, ejecutamos el manejador de evento anterior.
Se comprueba si el pedido tiene cliente asignado, si no lo tiene, presenta un mensaje de advertencia y lleva el foco al campo CLIENTE en el formulario.
El uso del comando de instrucción de proceso set retorno = NO, provoca que se cancele la pulsación del botón aceptar.
Este formulario de alta de pedido se llama desde el botón comandos de botón del tutor.
En el formulario incluido en el Dock Saludo, cuyo identificador es TUT_INT_ACC_SAL, y que encontraremos en la carpeta de objetos específicos de este tutor, el botón “¡Púlsame!” dispara el siguiente evento:
Este evento lo que hace es presentar un mensaje cuyo contenido variará en función de si el campo NAME está o no vacío. Si está vacío, llevará el foco al control de edición de dicho campo.
Para los mensajes hacemos uso de un objeto constante, esto nos permitirá que, si la aplicación la hacemos multi-idioma, podamos traducir los mensajes a idioma o idiomas que se precisen.