Tutor de comandos de interfaz y acciones

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.

Interfaz del proyecto

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.

Interactuar con las acciones del proyecto

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.

Activar la búsqueda de clientes

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.

Desactivar la búsqueda de clientes

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.

Ejecutar la búsqueda de colores

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.

Es visible la búsqueda de clientes

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?.

Está activa la búsqueda de clientes

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?.

Mostrar la búsqueda de clientes

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.

Ocultar la búsqueda de clientes

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.

Interactuar con el marco principal del proyecto

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:

Activar foco en edit del dock saludo

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".

Quitar foco del edit del 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”.

Desactivar botón del dock saludo

Se trata de un proceso que mediante el comando interfaz: deshabilitar deshabilita el botón incluido en el dock “saludo”.

Activar botón del dock saludo

Se trata de un proceso que mediante el comando interfaz: habilitar habilita el botón incluido en el dock “saludo”.

Desactivar formulario del dock saludo

Se trata de un proceso que mediante el comando interfaz: deshabilitar deshabilita el formulario incluido en el dock “saludo”.

Activar formulario del dock saludo

Se trata de un proceso que mediante el comando interfaz: habilitar habilita el formulario incluido en el dock saludo.

Es visible el formulario del 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.

Está activo el formulario del dock saludo

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.

Ocultar formulario del dock saludo

Se trata de un proceso que mediante el comando interfaz: ocultar el dock oculta el dock “saludo”.

Mostrar formulario del dock saludo

Se trata de un proceso que mediante el comando interfaz: mostrar el dock hace visible el dock “saludo”.

Aplicar hoja de estilo CSS al edit del 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”.

Quitar hoja de estilo CSS al edit del 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".

Aplicar clientes seleccionados a la lista en dock

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.

Rem ( Añadir ficha multiselección )
Interfaz: procesar ( SEP_FOR.REJ_01.REJ, Seleccionadas )
    Recorrer lista sólo lectura
        Crear copia de ficha en memoria ( FICHA_MAESTRO )
        Interfaz: añadir ficha a la multi-selección ( SEP_FOR.REJ_02.REJ, FICHA_MAESTRO )
    Interfaz: limpiar la multi-selección ( SEP_FOR.REJ_01.REJ )
Interfaz: activar subcontrol del contenedor de formularios ( SEP_FOR, REJ_02 )
Interfaz: establecer foco ( SEP_FOR.REJ_02.REJ )

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.

Quitar clientes seleccionados de la lista en dock

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.

Rem ( Quitar ficha de multiselección )
Interfaz: procesar ( REJ_MAE, Seleccionadas )
    Recorrer lista sólo lectura
        Crear copia de ficha en memoria ( FICHA_MAESTRO )
        Interfaz: quitar ficha de la multi-selección ( .AUTOEXEC.TUT_TES_INT_LST_COL.REJ_MAE, FICHA_MAESTRO )
    Interfaz: limpiar la multi-selección ( REJ_MAE )
    Interfaz: establecer foco ( .AUTOEXEC.TUT_TES_INT_LST_COL.REJ_MAE )

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.

Limpiar multi-selección en lista de clientes

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”.

Lanzar formulario alta rejilla de clientes del dock

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”.

Lanzar formulario modificación de clientes del dock

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.

Lanzar formulario baja color del dock

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.

Mostrar los clientes seleccionados en el dock

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”.

Ocultar marco

Evento de interfaz proceso que mediante el comando interfaz: ocultar oculta durante unos segundos el marco principal de la aplicación.

Interactuar con un multivista

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:

Aplicar hoja de estilo CSS a la rejilla de clientes

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).

Quitar hoja de estilo CSS a la rejilla de 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).

Mostrar rejilla de contactos

Evento de interfaz proceso que mediante el comando interfaz: mostrar hace visible la segunda rejilla del multivista (Contactos).

Ocultar rejilla de contactos

Evento de interfaz proceso que mediante el comando interfaz: ocultar oculta la segunda rejilla del multivista (Contactos).

¿Está visible la rejilla de 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.

Activar rejilla de contactos

Se trata de un evento de interfaz que mediante el comando interfaz: habilitar habilita la rejilla de contactos del multivista.

Desactivar rejilla de contactos

Se trata de un evento de interfaz que mediante el comando interfaz: deshabilitar deshabilita la rejilla de contactos del multivista.

¿Está activa la rejilla de contactos?

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.

Activar foco rejilla de contactos

Se trata de un evento de interfaz que mediante el comando interfaz: establecer foco activa el foco de la rejilla de contactos del multivista.

Quitar foco rejilla de contactos

Se trata de un evento de interfaz que mediante el comando interfaz: quitar foco quita el foco de la rejilla de contactos del multivista.

Ver ítems seleccionados en las dos rejillas

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.

Rem ( Ver items seleccionados )
Set ( MSG, "Clientes seleccionados: " )
Interfaz: procesar ( MULTIVISTA.CLT_M_TUT_INT_ACC, Seleccionadas )
    Recorrer lista sólo lectura
        Set ( MSG, "" + MSG + " " + #NAME )
Set ( MSG, "" + MSG + "\r\n" + "Contactos seleccionados: " )
Interfaz: procesar ( MULTIVISTA.CTT_M_CLT, Seleccionadas )
    Recorrer lista sólo lectura
        Set ( MSG, "" + MSG + " " + #NAME )
Mensaje ( MSG, Información, ,  )

Lanzar formulario alta rejilla contactos

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.

Lanzar formulario modificación rejilla de contactos

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.

Lanzar formulario baja contactos del dock

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.

Obtener multi-selección en rejilla de contactos

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.

Limpiar multi-selección en rejilla de contactos

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.

Interactuar con rejillas en separadores

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:

Aplicar clientes seleccionados a la lista en Rejilla 2

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”.

Rem ( Añadir ficha multiselección )
Interfaz: procesar ( SEP_FOR.REJ_01.REJ, Seleccionadas )
    Recorrer lista sólo lectura
        Crear copia de ficha en memoria ( FICHA_MAESTRO )
        Interfaz: añadir ficha a la multi-selección ( SEP_FOR.REJ_02.REJ, FICHA_MAESTRO )
    Interfaz: limpiar la multi-selección ( SEP_FOR.REJ_01.REJ )
Interfaz: activar subcontrol del contenedor de formularios ( SEP_FOR, REJ_02 )
Interfaz: establecer foco ( SEP_FOR.REJ_02.REJ )

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.

Quitar clientes seleccionados a la lista en Rejilla2

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”.

Rem ( Quitar ficha multiselección )
Interfaz: procesar ( SEP_FOR.REJ_01.REJ, Seleccionadas )
    Recorrer lista sólo lectura
        Crear copia de ficha en memoria ( FICHA_MAESTRO )
        Interfaz: quitar ficha de la multi-selección ( SEP_FOR.REJ_02.REJ, FICHA_MAESTRO )
    Interfaz: limpiar la multi-selección ( SEP_FOR.REJ_01.REJ )
Interfaz: activar subcontrol del contenedor de formularios ( SEP_FOR, REJ_02 )
Interfaz: establecer foco ( SEP_FOR.REJ_02.REJ )

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.

Limpiar multi-selección en Rejilla 2

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”.

Inhabilitar 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.

Habilitar subformulario Rejilla 2

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.

¿Está habilitado el subformulario Rejilla 2?

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á.

Atrapar pulsación de botones incluidos en los subformularios Rejilla 1 y Rejilla 2

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:

Rem ( Ha pulsado el botón )
Set ( MSG, "Has pulsado el botón del subformulario Rejilla 01" )

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.

Comandos de interfaz de guardado de ficha

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.

Guardar cambios sin salir

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.

Guardar cambios y salir

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.

Dock saludo

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:

Rem ( Saludo y solicitud del nombre )
Mensaje ( choose(isEmpty(NOM), ~MSJ_TEST_ESC_NOM@velneo_vTutor_app.app, ~MSJ_TEST_ESC_HOL@velneo_vTutor_app.app + NOM + ~MSJ_TEST_ESC_BIE@velneo_vTutor_app.app), Información, ,  )
If ( isEmpty(NOM) )
    Interfaz: establecer foco ( NOM )

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.

Última actualización