Web de Velneo V7

Creación de los objetos de aplicación

Creación de los objetos de aplicación
En esta parte del tutorial vamos a comenzar el desarrollo de los objetos visuales de nuestra aplicación con Velneo vDevelop V7.
Si no tenemos cargada la solución creada en el capítulo anterior tendremos que cargarla, para ello pulsaremos el botón . Si no estamos conectados con ningún Velneo vServer V7 el sistema nos pedirá los datos de conexión al mismo; una vez establecida la conexión con Velneo vServer V7, se presentará una ventana con la lista de soluciones de ese Velneo vServer V7:

Hacer doble clic sobre la solución vMusicBox.

Tamibén podremos cargar una solución pulsando el botón , que aparece junto al botón de abrir solución. Al pulsarlo se abrirá lista de las úlitimas soluciones abiertas, haríamos clic sobre la solución vMusicBox.

Si apareciese vacío querrá decir que, o bien no se han declarado soluciones en Velneo vServer V7, o bien no se nos ha dado permiso a ninguno.

Una vez seleccionada la solución, sus proyectos serán mostrados en el explorador de proyectos:

Si tenemos cargada la solución pero no el proyecto de aplicación, tendremos que hacer doble clic sobre él en el explorador de proyectos para cargarlo:

Como puede observarse, el asistente para la creación de soluciones ha creado automáticamente tres objetos: Unmenú, una toolbar y un marco.
Creación de objetos básicos
En los siguientes puntos veremos cómo se crean los objetos básicos para operar o interaccionar con una tabla: formulario, rejilla, búsqueda, localizador y proceso.

Creación de formulario
Un Formulario es un objeto que nos permite visualizar y modificar los registros de la tabla a la que está asociado de nuestra base de datos. Además, se puede usar en búsquedas y localizadores para definir los términos de la búsqueda. En procesos o rejillas nos permite acceder al registro con el que estamos operando. Tiene origen y destino ficha.

Para crear un formulario haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7, esto provocará la apertura de un asistente que nos facilitará su creación. En el primer paso del asistente estableceremos las propiedades siguientes:

En la parte central de este formulario se ha de seleccionar una plantilla para distribuir los distintos controles que contendrá nuestro formulario. Si no queremos aplicar ningún tipo de plantilla seleccionaremos la llamada Vacía (esto desactivará las propiedades siguientes); en caso contrario, seleccionaremos con un clic la deseada. En este caso seleccionaremos la plantilla 1 bloque.

El resto de las propiedades relevantes de este primer paso del asistente son:

Generar layouts: Activaremos esta opción si queremos que el formulario a crear contemple layouts.
Bloque de botones: Activaremos esta opción si queremos que el formulario a crear contenga un bloque para situar botones “Acepar”, “Cancelar”, etc.
Posición: Si la opción anterior está activada, en esta indicaremos en qué posición será situado el bloque de botones.

Pulsaremos el botón para ir al siguiente paso del asistente; donde tendremos que seleccionar los campos que irán en cada bloque que va a generarse en el formulario. Por cada bloque existirá una pestaña y en ella se indicarán los campos a incluir en el mismo. En este caso, al tratarse de un único bloque, sitaremos todos los campos en el mismo. Además, si en el paso anterior del asistente hemos activado la propiedad Bloque de botones aparecerá también la pestaña correspondiente al mismo:

Vamos a hacer la selección de los campos a incluir en el formulario, para ello, dentro de la pestaña Bloque 1 pulsaremos el botón para añadir todos los campos. Una vez hecho esto , los campos serán mostrados en el asistente:

El orden en que se muestran los campos seleccionados será el orden en el que serán creados en el formulario. Podemos cambiar la posición de un campo usando los botones de la toolbar incluida en la pestaña.

Podremos borrar un campo pulsando el botón .

El resto de las propiedades de esta pestaña no las modificaremos; dejaremos los valores por defecto.

Distribución: En esta propiedad seleccionaremos cuál va a ser la posición de las etiquetas con respecto a los controles de edición correspondientes. Los valores posibles son:

Estirar controles: Si esta propiedad está activa, todos los controles de un bloque serán creados con la misma longitud; si está inactiva serán creados según el tipo y longitud del campo que editen:

Una vez establecido el contenido del bloque accederemos a la pestaña Botones para configurar su apariencia:

El sistema por defecto asume la creación de dos botones, “Aceptar” y “Cancelar”, ambos ya programados con las funciones de grabación y cancelación de ficha, respectivamente. Lo que haremos será añadir un nuevo botón “Eliminar”, para ello pulsaremos el botón de la barra de herramientas incluida dentro de esta pestaña y seleccionar la opción Eliminar. Esto hará que se añada un botón ya programado con la función que elimina la ficha editada.

A continuación lo que haremos será seleccionar el modo en que el los botones serán alineados con respecto al formulario en la propiedad Alineamiento horizontal, que será: Derecha (Los botones sean alineados a la derecha del bloque).

Una vez hecho esto pusaremos el botón “Siguiente” y a continuación el botón “Finalizar”. Una vez hecho esto el formulario será añadido a nuestro proyecto y editado:

Y ya está listo para ser usado.
Creación de rejilla
Una Rejilla es un objeto que muestra los elementos de una lista de registros, permitiendo seleccionar qué columnas, es decir, qué campos, se muestran de cada registro. Podemos usarla para visualizar el resultado de una búsqueda o la salida de un proceso. Por tanto tiene origen lista y también destino lista, ambos de la tabla a la que está asociada.
Haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7 para abrir el asistente de creación de rejilla:

En el asistente debemos seleccionar la tabla a la queremos asociar la rejilla, y el nombre lo asigna automáticamente en función del nombre de la tabla seleccionada. Podemos asignar también los formularios que hemos creado para la tabla y que vamos a usar para el alta, baja y modificación de registros.

El siguiente paso del asistente nos permite configurar qué campos aparecerán en la rejilla.

Podremos incluirlos todos , o eliminar toda la selección de campos , o bien ir uno por uno incluyéndolos o quitándolos de la selección. También podemos incluir no sólo el campo enlazado si no que también podemos incluir campos del registro enlazado.

Por último, podemos ordenar los campos de tal forma que el orden de las columnas quedará determinado por el orden que aquí definamos, llevando hacia arriba aquellos que queramos que aparezcan más a la izquierda y hacia abajo los que queramos que se encuentren más a la derecha en la rejilla.

El siguiente paso del asistente nos lleva a una previsualización, en la que además podemos seleccionar una paleta si la hemos definido.

En la previsualización ya podemos ver el orden que tendrán las columnas y el tamaño por defecto.

Si queremos realizar alguna modificación antes de crear la rejilla, éste es el momento, ya que el siguiente paso nos pide que confirmemos la creación de la rejilla, aunque podemos volver hacia atrás para hacer las modificaciones correspondientes o cancelar.

Haciendo doble clic sobre el objeto creado, podemos ver el editor de rejillas con la previsualización de la rejilla, en el que podemos realizar las modificaciones que consideremos oportunas.

Velneo vDevelop nos ofrece la posibilidad de establecer distintos tipos de ancho dinámicos para las columnas de las rejillas, lo que nos permite adaptar la anchura de las mismas al tamaño de la ventana que las contenga y/o a diferentes resoluciones de pantalla y así poder mantener en todo momento el equilibrio visual en nuestras aplicaciones.

Los tipos posibles son:

Interactivo: En ejecución el ancho de la columna será el que hayamos declarado en edición, pero podrá ser modificado por el usuario final.

Fijo: En ejecución el ancho de la columna será el que hayamos declarado en edición y no podrá ser modificado por el usuario final.

Máximo disponible: La columna se ensanchará o reducirá para adaptar la rejilla a la anchura de la vista que la contenga.

En la captura de pantalla siguiente se muestra una rejilla cuya anchura es inferior al ancho del control que la contiene, lo que provoca que aparezca un área en blanco a su derecha:

En la captura de pantalla siguiente se puede comprobar cómo se visualizaría esa misma rejilla pero seleccionando como ancho de la primera columna Máximo disponible:

Adaptado al contenido: El ancho de la columna será el del campo más ancho contenido en la misma. La imagen siguiente contiene dos capturas de una misma columna de una rejilla; como puede observarse, el ancho de la misma viene determinada por la anchura del elemento de mayor tamaño:


Creación de búsqueda
La Búsqueda es un objeto que nos permite obtener un listado de registros como resultado de buscar por uno o más índices. La lista resultante la podemos ver a través de una rejilla o bien usar como entrada de un proceso. Por tanto no tiene origen pero tiene destino lista de la tabla en que hemos buscado.
Para crear una búsqueda haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7.

Una vez que hemos creado el objeto búsqueda hemos de darle un nombre y asociarle una tabla.

El siguiente paso es crear los componentes de la búsqueda. Para ello pulsamos el botón de crear subobjeto y configuramos el componente.

Debemos configurar en primer lugar el índice por el que queremos realizar la búsqueda. También debemos configurar el modo: Todo la lista, la parte izquierda o entre límites.

Si la búsqueda es de toda la lista, no es necesario hacer nada más. Si una búsqueda va a ser por parte izquierda, ha de tener un formulario en el que le indiquemos los campos que vamos a resolver.

Este formulario ha de tener un control de edición del campo que vamos a resolver y los botones Aceptar (éste lo podremos llamar Buscar) y Cancelar.

En el objeto Búsqueda asociaremos el formulario de búsqueda en la propiedad Formulario. Cuando seleccionemos la opción parte izquierda o entre límites aparecerán las propiedades que nos permiten resolver la búsqueda.

Seleccionaremos entonces los campos que editamos en el formulario de búsqueda para resolver cada una de las partes del índice. De esta manera, cuando en ejecución introduzcamos una cadena a buscar en el formulario, esta cadena será usada por el componente de la búsqueda para resolverla.

Si añadimos más componentes, tenemos entonces la opción de cruzar, añadir o quitar a la búsqueda cada una de las listas de registros obtenidos por cada componente de búsqueda configurando la propiedad Mezcla.


Creación de localizador
Un Localizador es un objeto que nos permite buscar de forma dinámica un registro de entre los existentes en una tabla por uno de los índices que hemos seleccionado. De forma dinámica porque la búsqueda del registro se realiza a medida que introducimos la cadena a buscar. Podremos usar la ficha obtenida para presentarla en un formulario o usarla en un proceso con origen ficha. Por tanto, no tiene origen pero tiene destino ficha de la tabla que hemos seleccionado en el localizador.
Creamos un objeto Localizador haciendo doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7 y configuramos la tabla asociada al localizador y la rejilla en que queremos mostrar los resultados.

Para que el localizador de forma automática gestione los índices disponibles correspondientes a la tabla, basta activar la propiedad Todos los índices.

De esta manera, en ejecución, cuando usemos el localizador éste se encargará de permitir seleccionar de entre todos los índices cuál es el que queremos usar, generando el formulario correspondiente para la búsqueda, con un editor en el que podamos escribir la cadena de búsqueda.

Si queremos configurar nuestro propio localizador, debemos crear un componente de localizador, igual que sucedía con las búsquedas, asociándole un formulario en el que editaremos el campo por cuyo índice queremos resolver.


Creación de proceso
Un Proceso es un objeto que contiene un conjunto de instrucciones que nos permite interaccionar con la base de datos y con el usuario para realizar tareas complejas que no hemos resuelto con la estructura del proyecto de datos. Estas instrucciones son código asistido que permiten el uso de otros objetos del proyecto.
Tanto su origen como su destino son configurables, por lo que permite tener origen ninguno, ficha -pudiendo partir del registro que le demos como entrada- o lista -partiendo entonces del listado de registros que le demos como entrada-. Y también podemos configurar que tenga destino ninguno, ficha -retornando como salida una ficha con la que estemos operando en el proceso- o lista -devolviendo en ese caso como salida una lista con la que estemos trabajando en el proceso.

Cuando el proceso tenga origen ficha, la entrada puede provenir de formulario, localizador u otro proceso con destino ficha, todos de la misma tabla asociada, y la salida del destino ficha podemos usarla en un formulario o un proceso, de la misma tabla igualmente.

Para el origen lista podemos usar una búsqueda como entrada, una rejilla u otro proceso con destino lista, todos de la misma tabla asociada. Y de igual manera, como salida podemos usar una rejilla u otro proceso con origen lista, igualmente todos de la misma tabla.

Crearemos un Proceso haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7. Además de crear el objeto nos permite abrir el editor de instrucciones al que podemos acceder en cualquier momento haciendo doble clic sobre un objeto proceso.

En primer lugar hemos de darle nombre y configurar el origen y el destino, tanto la tabla de origen como de destino y el tipo, si es ninguno, ficha o lista.

Las instrucciones del proceso serán subobjetos de éste y obtendrán su origen de éste, pero, más importante aún, las variables locales del proceso también son subobjetos del proceso. Se crearán automáticamente cuando las usemos en las instrucciones, pero podremos acudir al proceso, haciendo doble clic, para poder cambiar su configuración.

En la barra de herramientas tenemos las opciones para añadir una línea de instrucción , insertar una línea o borrar la seleccionada . También podremos comentar una línea para que no se ejecute . Por otro lado, podremos manejar las ramas del árbol de instrucciones , además de seleccionar todas las instrucciones para copiar y pegar.

Iremos creando instrucciones seleccionando para ello el comando de entre los grupos de comandos disponibles -y los parámetros correspondientes- en función del origen de cada línea, que en primer lugar viene determinado por el origen del proceso y que podemos ir variando dependiendo de los comandos que empleemos. Algunos comandos generarán subramas cuyo origen vendrá determinado por el comando y se ejecutarán las instrucciones que cuelguen de la subrama en función de éste.

Qué registros componen la salida del proceso vienen determinados por las instrucciones Añadir ficha a la salida y Añadir lista a la salida. La primera podemos usarla para generar la salida ficha de un proceso, y ambas son válidas para generar la salida de un proceso.

En ambos casos, los comandos generan la salida a partir de la ficha o lista en cuyo origen esté situado el comando, que tiene que corresponder con el seleccionado en el proceso. En el caso de la lista, además de permitir generar la lista a partir de una ficha, permite hacerlo a partir de varias fichas y listas.


Acciones
A continuación vamos a ver cómo se crean las acciones y cómo se usan y manejan los objetos que son disparables y aparcables.
El objeto Acción permite lanzar comandos en función de la entrada que hayamos seleccionado. Por un lado están los comandos en stock preprogramados, que nos permiten dar de alta un registro, modificar, eliminar, etc.; filtrar, ordenar, modificar campo, etc., en una lista; navegar a maestro por listas, a histórico, etc.; además de otros comandos de interfaz: copiar, pegar, etc.; cambiar de ventana, cerrar ventana, etc.

Pero además existe otro comando que nos permite disparar objetos en función de una entrada que definimos en el objeto y generando una salida en forma de objeto aparcable. La entrada del objeto será por tanto definible, pudiendo escoger entre ninguno, ficha y lista, y la tabla asociada, lo que determinará desde dónde podemos lanzar una acción. El destino, tanto si resultará ninguno, ficha o lista, dependerá de los objetos que usemos en la acción.

Para crear una acción haremos doble clic sobre el icono de la galería de objetos (Control + Ins) de Velneo vDevelop V7.

Los comandos en stock únicamente requieren el origen para ser ejecutados. El foco en el momento de pulsar la acción determina si se puede ejecutar o no en función del origen y el comando actúa sobre el elemento en el foco.

Además, la acción puede ser lanzada desde un objeto que tenga el mismo origen. Las acciones podemos usarlas como opciones de menús o barras de herramientas con o sin origen, dependiendo el origen del elemento que tenga el foco. También podemos usar la acción en formularios, tanto con origen como sin origen.

Los objetos que podemos disparar en una acción se dividen entre los que son únicamente disparables y los que además son aparcables. Estos últimos se denominan así porque tienen interfaz. Disparables son aquellos objetos que permiten generar o procesar entradas y aparcables son aquellos además tienen interfaz que permite presentar el resultado. Así, en esta división, los que únicamente son disparables son: Localizador, Búsqueda, Proceso, Lupa, Tubo de lista, Tubo de ficha, Informe y Cesta. Los objetos que además son aparcables son: Rejilla, Árbol visor de tablas, Casillero, Formulario, Multivista Informe, Blog de formularios.

Una vez que tenemos determinado el origen, el primer objeto disparable que podemos seleccionar tendrá como entrada el origen seleccionado -ninguno, ficha o lista- y deberá estar asociado a la misma tabla que la acción, y como destino valdrá cualquiera. El siguiente elemento disparable o aparcable deberá tener la misma entrada que la salida del anterior objeto y por salida valdrá cualquiera, y así podremos encadenar tantos objetos como queramos. Así sucede cuando vamos seleccionando los objetos que vamos a disparar en la acción, nos va proponiendo únicamente aquellos que tengan como origen el destino del anterior o en su defecto, el origen de la acción.

Si queremos mostrar algún resultado al usuario deberemos usar objetos aparcables que permitirán mostrar ese resultado en el objeto seleccionado.
Objetos de interfaz
El siguiente paso será la creación de los objetos de interfaz. Los objetos que veremos serán el objeto Marco, Toolbar y Menú.

Estos tres objetos junto con el objeto Formulario nos permiten configurar todo nuestro interfaz.
Marco y Dock

El objeto Marco es el que nos permite definir cómo será el interfaz del usuario cuando ejecuta el proyecto de aplicación con Velneo vClient V7. Nos permite definir cuál es el formulario de fondo de nuestra aplicación, el menú principal del marco y los docks que compondrán el interfaz, que podrán contener barras de herramientas u otros formularios.

Usaremos el marco que ha sido creado por el asistente de soluciones, lo seleccionaremos y le daremos el identificador AUTOEXEC, este identificador indica al sistema que será el marco por defecto que usará Velneo vClient en la ejecución del proyecto de aplicación.

Debemos asignarle además un nombre y un título, que será lo que presente como título de la ventana en ejecución. Además, debemos asignarle un formulario, que será el formulario de fondo de la aplicación, un modo de arranque, por defecto modo tab y un menú, que será el menú principal de la aplicación.

Por último, podemos crear el subobjeto Docks pulsando el botón . El objeto Dock es una ventana aparcable que puede incluir un formulario sin origen, o bien una barra de herramientas. Este objeto nos permite añadir nuevas barras de herramientas a nuestro interfaz, y además podemos crear nuevas áreas de intefaz que presenten otros objetos como pueden ser rejillas, formularios, etc.

En el subobjeto Dock debemos definir un nombre, que será el nombre de la ventana, qué objeto es el que queremos mostrar en el dock, si va a ser una barra de herramientas o un formulario y la posición que ocupará. Además, podemos definir si será incluido, por lo que se creará una nueva área para mostrar el objeto o si se añadirá a otro dock ya existente, de manera que formen un pestañador.

Menú

El objeto Menú es un agrupador de lanzadores de acciones. Los lanzadores de acciones pueden contener un comando en stock, es decir, comandos preprogramados que tenemos disponibles para usar, o bien programar nuestras propias acciones, objeto que también podemos usar. Usaremos el menú que nos ha creado automáticamente el asistente de soluciones. Dado que este objeto dispone de un editor, para abrirlo haremos doble clic sobre el mismo:

En el menú configuraremos el nombre, que será el título de la barra de herramientas. También configuraremos el estilo, ya que puede mostrar texto, texto e imágenes y únicamente imágenes. Y un icono que será el icono de la barra de menú.

El menú, aunque se muestre vertical como un desplegable, cuando lo usamos en un marco como menú principal se mostrará horizontal, tal cual se presentan los menús principales. En ese caso no presentará iconos, únicamente texto. Pero como desde un menú podemos llamar a otro, en ese caso sí que se desplegará de forma horizontal y presentará los iconos que hayamos definido.

En el menú podemos añadir o quitar los comandos en stock existentes o hacer lo mismo con las acciones que tengamos programadas. También podemos ordenarlas, subiendo o bajando el orden físico de los lanzadores de acción.

Toolbar

El objeto Toolbar es un agrupador de lanzadores de acciones. Los lanzadores de acciones pueden contener un comando en stock, es decir, comandos preprogramados que tenemos disponibles para usar, o bien programar nuestras propias acciones, objeto que también podemos usar. Es un objeto análogo al menú, pero en este caso nos permite construir barras de herramientas, siendo botones en vez de opciones lo que nos presenta. Usaremos el menú que nos ha creado automáticamente el asistente de soluciones. Dado que este objeto dispone de un editor, para abrirlo haremos doble clic sobre el mismo:

En la toolbar los botones se muestran en horizontal, tal cual se presentarán en los docks en los que los configuremos. Desde una toolbar podemos llamar a otra toolbar o aun menú, que se mostrarán como un desplegable.

En la tooblar podemos añadir o quitar los comandos en stock existentes o hacer lo mismo con las acciones, menús u otras toolbars que tengamos programadas. También podemos ordenarlas, subiendo o bajando el orden físico de los lanzadores de acción.
Creación de objetos avanzados
En esta parte del tutorial veremos cómo se crean el resto de los objetos visuales disponibles en Velneo vDevelop V7.

Creación de bloc de formularios
Se trata de un objeto que nos permite recorrer, uno a uno, una lista de registros de una misma tabla desde un formulario:

Tal y como puede verse en la imagen anterior, el objeto bloc de formularios usa un formulairo y añade una serie de controles que nos permitirán movernos al registro anterior/siguiente, al primero o al último, o a un registro concreto de la lista.
En este caso vamos a crear un bloc que nos permita recorrer una lista de ALBUMS (albumes) dentro del formulario de ARTISTS. Para ello necesitaremos crear dos objetos: Un bloc de formularios y un proceso que devuelva los álbumes de un artista.

Para crear un bloc de formularios haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7.

Para crear el proceso pulsaremos el botón . En el proceso, entre otras propiedades, tendremos que indicar tanto su origen como su destino. Dado que se trata de obtener los álbumes de un artista el origen será una ficha de la tabla de artistas (ARTISTS) y el destino será una lista de álbumes (ALBUMS):

Y su contenido será:

Carga los discos del artista y envía los discos encontrados a la salida.

El siguiente paso será incrustar el bloc en el formulario del artista. Para ello editaremos el formulario correspondiente y, en la barra de controles, seleccionaremos el botón (control objeto), lo pegaremos en el formulario y le asignaremos las propiedades siguientes:

Y ya tenemos totalmente operativo el bloc de álbumes en la ficha del artista.
Creación de multivista
Se trata de un objeto que nos permite sincronizar de forma sencilla de 1 a n objetos en una misma vista. Mediante el uso de procesos, podremos sincronizar rejillas, árboles, casilleros, formularios, otros objetos multi-vista, etc.

En un objeto multivista se sincronizarán los distintos objetos visuales que formarán parte del mismo mediante procesos.
Podremos, mediante un multivista, partiendo de una lista de artistas (ARTISTS), cargar los álbumes (ALBUMS) de un artista, cargar las pistas (TRACKS) de un álbum y editar la letra (LYRIC) de una pista, y todo ello visualizarlo:

Como multi-objeto: Una vista con una rejilla de cada tabla.
Como árbol: A modo de árbol con ramas y subramas.
Como wizard: A modo de asistente.

El origen del multivista será una lista de artistas (ARTISTS). En la aplicación ya se ha programado previamente una búsqueda de esa tabla y la rejilla correspondiente.

El siguiente paso será crear un proceso para cargar los álbumes de un artista. Para ello haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7.

Su origen será una ficha de la tabla de artistas y su destino será una lista de álbumes:

El proceso cargará los álbumes del artista y añadirá la lista resultante a la salida:

Ahora nos queda hacer lo propio para obtener las pistas de un álbum. Para ello crearemos otro proceso. El proceso tendrá su origen en una ficha de la tabla de álbumes (ALBUMS) y destino en una lista de pistas (TRACKS):

El proceso cargará las pistas del álbum y añadirá la lista resultante a la salida:

Para ver la letra (LYRIC) de una canción (TRACK) se ha creado un formulario en la aplicación llamado TRACKS_LIRYC_READ_ONLY que muestra la letra dentro de una caja de texto.

Al igual que hemos hecho anteriormente, para sincronizar la rejilla de pistas con el formulario necesitaremos un proceso, cuyo origen y destino será una ficha de la tabla de pistas (TRACKS):

El proceso lo único que hará será añadir la ficha que el usuario seleccione en la rejilla de pistas a la salida.

Una vez creados estos procesos, vamos a crear el multivista; para ello haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7. Y le daremos las propiedades siguientes:

Recordemos que su origen es una lista de artistas. Como primer objeto de la vista usaremos, por tanto, una rejilla de artistas. Como proceso sincronizador usaremos el que carga los álbumes de un artista (ARTIST_ALBUMS), que presentaremos en una rejilla de la tabla de álbums; a su vez, para obtener las pistas de un álbum usaremos el proceso ALBUM_TRACKS y mostraremos el resultado en una rejilla de dicha tabla. Por último, usaremos el proceso TRACK_EDIT para sincronizar la rejilla de pistas con el formulario de edición de la letra de la pista.

El siguiente paso será crear la acción que dispare este objeto multivista; para ello haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7 y le daremos las propiedades siguientes:

La acción partirá de una búsqueda de artistas por orden de código (ARTISTS_CODE) y tendrá como salida el objeto multivista creado anteriormente. Esta acción podrá ser disparada desde un menú, desde una toolbar o desde un botón de formulario.

Como habíamos comentado al principio, un objeto multi-vista puede ser visualizado de tres formas: Como multi-objeto, como ábol y como wizard (asistente). Como multi-objeto sería:

Como árbol:

El árbol solamente permite incluir listas y sublistas a modo de rama, no permite incluir formularios. Pero sí que permite usar como formulario de edición de la pista el que hayamos asociado en la rejilla usada en el objeto multi-visa. En definitiva, podremos editar cualquier ficha de cualquier tabla cuya rejilla tenga asociado el formulario correspondiente.

Y como wizard (asistente):


Creación de casillero
El casillero es un objeto que sirve para presentar listas de registros de las tablas.
El objeto Casillero permite ver listas de registros de las tablas de datos. Esta compuesto por una serie de celdas (casillas) distribuidas en forma de filas y columnas. Una celda se corresponde con un registro de una tabla. Cada casilla se visualiza en un formulario de la tabla origen del casillero. Cada celda es a su vez un botón que permite ejecutar tres comandos:

Ninguno: No hará nada.
Editar formulario: Se editará el formulario asignado al casillero para la modificación de la ficha correspondiente a la celda pulsada. La edición del formulario se hará en la propia celda.
Ejecutar proceso: Se ejecutará un objeto proceso contenido en el proyecto. Los procesos disponibles serán los que tienen origen ficha de la tabla origen del casillero.

Para crear un casillero haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) de Velneo vDevelop V7.

Las propiedades a configurar en el casillero son:

Tras indicar las propiedades generales de identificador, nombre, estilos, comentarios y tabla asociada, debemos seleccionar el formulario que se mostrara en cada celda del casillero. Tambien debemos definir el número de columnas que compondran cada fila y las opciones de menú y toolbar.
Creación de eventos y conexiones
El evento es un subobjeto contenedor de intrucciones, similar a un proceso, que podemos ejecutar asociado a una señal configurada en una conexión de evento, o desde un botón.

Las conexiones de evento permiten configurar una señal asociada al formulario o a un control. Cuando la señal se dispare forzará la ejecución del evento. Ejemplos de señales son un timer, que se ejecuta cada cierto tiempo, una ganancia de foco, un doble clic en una rejilla o casillero, una pulsación de botón, etc.

Los eventos disponen de un grupo de comandos especifico que puede acceder al objeto desde donde se dispara denominado Comandos de interfaz. Estos comandos de interfaz nos permiten acceder a la gestión del foco, recalcular controles, acceder a la lista de registros que tiene un control o modificar las propiedades de color o fuente del control.
Realizaremos un ejemplo sencillo: al pulsar el botón aceptar comprobaremos si el usuario ha introducido una valor en el campo nombre y, si no es así, mostraremos un mensaje. A continuación posicionaremos el foco en el control que el usuario ha de rellenar.

El primer paso ha de ser crear el evento que dispararemos. Para ello, una vez dentro del formulario, hemos de pulsar el botón de la barra de herramientas. Haciendo doble clic sobre el objeto creado abriremos el editor de instrucciones que nos permite programar el evento al igual que los procesos.

Comenzaremos comprobando si el campo NAME tiene valor usando la función isEmpty(). Si no es así mostraremos un mensaje de error indicando al usuario cuál es la tarea que ha de realizar. Una vez que acepte, usamos el comando de Interfaz: Activar foco objeto para que el control correspondiente gane el foco para permitir al usuario que complete el campo.

Por último, hemos de crear la conexión de evento que definirá el disparo de la señal. Para ello, de nuevo dentro del formulario, debemos pulsar el botón de la barra de herramientas.

El siguiente paso será completar las propiedades de este subobjeto: definiremos qué control será el que dispare la señal, en este caso el botón Aceptar, cuál será la señal que dispare, en este caso la ganancia de foco del control y, por último, qué evento se disparará, que será el que acabamos de crear.

© 2012, Velneo S.A. Todos los derechos reservados      Contacto | Privacidad - Legal
Life is Soft