Este tutor es un ejemplo de cómo podemos hacer uso de un objeto visual menú, en controles de formulario. El ejemplo vamos a centrarlo en un control de formulario de edición de un campo enlazado a una tabla de datos maestra, mostrando distintas formas de mostrar un menú: como menú desplegable o como menú de opciones embebido dentro del propio control.
Este tutor hace uso de las siguientes tablas del proyecto de datos de vTutor:
La tabla Clientes (CLT_M) contiene un enlace maestro a la tabla Sectores de actividad (SEC_ACT_M).
Los objetos de aplicación específicos de este tutor los encontraremos en la carpeta tutores/controles/menús en controles del proyecto de aplicación de vTutor.
En todos los casos vamos a usar el mismo objeto menú, al que hemos llamado CLT_M_TUT_BTN_MEN y que encontraremos dentro de la carpeta de objetos de este tutor. Que estará compuesto por las acciones siguientes:
Las acciones anteriores las encontraremos dentro de la carpeta tablas tutores y buenas prácticas/clientes/menús de botón de clientes/menú de botón de sector de actividad.
Esta acción dispara el siguiente proceso:
Tanto la acción como el proceso los encontraremos en la carpeta de objetos del tutor.
En la carpeta de objetos del tutor hemos creado un formulario asociado a la tabla de Clientes llamado CLT_M_TUT_BTN_MEN que contiene un control de edición del campo enlazado a la tabla de Sectores de actividad duplicado 9 veces, tantas como combinaciones posibles hay de formas de incluir el menú. Veamos las propiedades existentes para incluir menús en un control de edición:
Tipo de menú de contexto: permite asignar un menú de contexto al control. Los valores posibles son:
Ninguno: en ejecución el control carecerá de menú de contexto.
Por defecto: en ejecución se usará el menú de contexto por defecto del control. No todos los controles por defecto tienen menú de contexto.
Personalizado: permite indicar que el control usará un objeto menú declarado en el proyecto de aplicación o en cualquier proyecto heredado.
Menú de contexto: este parámetro solamente estará disponible si en el parámetro anterior hemos seleccionado el valor personalizado. En él seleccionaremos el objeto menú declarado en el proyecto de aplicación o en cualquier proyecto heredado que queremos usar como menú de contexto del control.
Tipo de menú de botón: permite incluir dentro del control un botón que al pulsarlo desplegará el menú que se indicará en la propiedad siguiente. Los valores posibles son:
Ninguno: en ejecución el control carecerá de menú de botón.
Botón izquierda: el botón será incluido a la izquierda del control.
Botón derecha: el botón será incluido a la derecha del control.
Botón oculto: el botón no será visible pero podrán dispararse las acciones contenidas en el menú asociado al mismo usando las teclas aceleradoras definidas en las mismas.
El icono que se usará en el botón será el asignado al objeto menú en sus propiedades y, en caso de no tener dibujo alguno asignado, se presentará un icono por defecto.
Es posible usar las mismas teclas aceleradoras en los menús incluidos en botones de distintos controles de un mismo formulario pues siempre se ejecutará la acción del control que tenga el foco.
Menú de botón: este parámetro solamente estará disponible si en el parámetro anterior hemos seleccionado un valor distinto a Ninguno. En él seleccionaremos el objeto menú declarado en el proyecto de aplicación o en cualquier proyecto heredado que queremos usar como menú de botón del control.
Un mismo control puede usar dos menús diferentes, uno como menú de contexto y otro como menú de control.
Cada control de edición del campo enlazado a maestro que hemos incluido en el formulario le hemos establecido una condición de visibilidad, que usará sendas variables locales numéricas editadas con botones de radio en el formulario. De este modo, en tiempo de ejecución, según la opción que seleccionemos, estará visible uno u otro control.