8.4 El almacén de objetos
8.5.5. Base de datos externa ODBC-DAO
Velázquez Visual permite que el diseñador declare, dentro del proyecto, ba- ses de datos externas a las que puede hacer referencia, tanto para impor- tar como para exportar información.
Para que Velázquez Visual pueda acceder a la información contenida en las bases de datos externas, debe existir un motor de búsqueda que contenga las tablas y consultas. Velázquez Visual ataca la información del motor de búsqueda por medio de los dispositivos ODBC (Open DataBase Connecti- vity) y DAO (Data Access Objects).
Velázquez Visual es capaz de interpretar la información descriptora de ta- blas y consultas del motor de búsqueda, y puede importar datos usando un
Tubo de importación, desde una opción de menú.
También es capaz de dar de alta nuevas fichas en las tablas externas me- diante un Tubo de exportación, desde un proceso.
08
Desarrollo completo de una aplicacióne
Base de datos externa ODBC- DAO
Al señalar el icono Base de datos externa ODBC-DAO , Velázquez Visual muestra un cuadro de diálogo para que señalemos el archivo .MDB que la contiene. Al señalarla, Velázquez Visual lee e interpreta toda la información guardada en el motor de búsqueda. A partir de ese instante, el diseñador puede acceder a las tablas externas para exportar datos y a las consultas para importarlos.
Creación de una tabla de datos igual a una base de datos externa
La opción Objeto/Crear tabla igual a externa permite crear una tabla de da- tos de Velázquez igual una base de datos externa incorporada al proyecto.
Para ello hemos de seguir los siguientes pasos:
Posicionamos el cursor sobre la base de datos externa a copiar. Ejecutamos la opción Objeto/Crear tabla igual a externa.
Se abrirá la ventana Crear nueva tabla interna desde una externa en la que tenemos las siguientes opciones:
Nombre plural: especificaremos el nombre plural de la tabla. Nombre singular: el nombre singular de la tabla.
No es posible importar datos directamente de una tabla externa, han de importarse de una consulta.
ADVERTENCIA
Base de datos externa ODBC- DAO
Maestro: si activamos esta opción la tabla que vamos a generar va a ser de
tipo maestro normal con clave numérica, si no la activamos la tabla será de tipo histórico.
Campo código: especificaremos, de la lista de campos de la tabla de ori-
gen, cuál será el correspondiente al campo Código de la tabla de nuestro proyecto. Esta opción estará inactiva si no hemos activado la casilla
Maestro.
Tiene nombre: activaremos esta opción si la tabla de datos de origen tiene
un campo Nombre.
Campo nombre: aquí se especifica, de la lista de los campos de la tabla ex-
terna, cuál es el correspondiente al campo Nombre de la tabla de nuestro proyecto. Estará desactivada si no se ha activado la opción anterior.
Índice alfabético: para crear el índice alfabético del campo Nombre en la
nueva tabla.
Índice palabras: para crear el índice por palabras del campo Nombre en la
nueva tabla.
Una vez aceptado el formulario ya tendremos creada una tabla interna de Velázquez a partir de la base de datos externa seleccionada. Si ahora qui- siéramos importar los datos de la base de datos externa a la tabla recién creada, tendríamos que hacer uso de los tubos de importación, que vere- mos más adelante.
Ejemplo: creación de una tabla de datos igual a una base de datos externa
Supongamos un proyecto de Velázquez en el que hemos declarado una ba- se de datos externa, en la que tenemos dos tablas: CLIENTES Y PEDIDOS.
08
Desarrollo completo de una aplicaciónAunque Velázquez Visual nos permite importar el código desde una tabla externa, muchas veces no podemos conocer la integridad de los datos que importamos (códigos repetidos, falta de códigos, no congruente con el tipo de código, etc.). Es mejor que el campo código de nuestra tabla sea generado automáticamente por Velázquez Visual y que guardemos el código que importamos en otro campo, que podemos usar para buscar los enlaces que tienen los registros.
ADVERTENCIA
Queremos crear una tabla en nuestro proyecto que tenga la misma estruc- tura de campos y tipos de campos que la tabla CLIENTES de la base de da- tos externa (supongamos que hacemos esto para, posteriormente, importar los datos de la tabla CLIENTES de la base de datos externa a la tabla que vamos a crear).
Para ello seleccionamos la tabla CLIENTES de la base de datos externa y ejecutamos la opción de menú objetos/crear tabla igual a externa, apare- ciendo la ventana Crear nueva tabla interna desde una externa.
Rellenamos las propiedades, indicamos que su nombre será CLIENTES, que va a ser de tipo maestro (en caso contrario nos crearía una tabla de ti- po histórico), que el campo Código de la tabla de nuestro proyecto se co- rresponderá con el campo Código de la tabla origen, que la tabla de origen tiene campo Nombre, correspondiéndose el campo Nombre de la tabla de nuestro proyecto con el campo Nombre de la tabla origen. También le de- cimos que nos cree los índices alfabético y por palabras.
Si le dijéramos que el campo Código de la tabla de nuestro proyecto se co- rresponde con el campo Nombre de la tabla origen, Velázquez crearía en la tabla CLIENTES de nuestro proyecto un campo Código con las propieda- des del campo Nombre de la tabla origen (de tipo alfabético).
Aceptamos la ventana anterior y vemos cómo Velázquez ha creado en nuestro proyecto la tabla CLIENTES.
La tabla CLIENTES tiene los mismos campos que la tabla de origen, longi- tud, tipo, etc., así como el índice por el campo código, por el nombre y por palabras del nombre.
08
Desarrollo completo de una aplicacióne
Cuestiones
1. Supongamos que el esquema siguiente es parte de una aplicación para una agencia de viajes:
En la tabla COMPAÑIAS AEREAS guardamos información acerca de la compañía que oferta el vuelo, en VUELOS tenemos información acer- ca de los vuelos que oferta la compañía (hora de salida, hora de llega- da, precio, etc.), mientras que en PAISES DE DESTINO se indica el país al que pertenece la ciudad de destino. Incluir, en un formulario de
Resumen
Velázquez Visual cuenta con una serie de objetos gracias a los que podemos trabajar con los datos. Éstos son: la lupa, el encarpetado de histórico, la ces-
ta de la compra, la hoja de cálculo y bases de datos externas ODBC-DAO. La lupa : Objeto con el que se pueden establecer condiciones de filtrado en listas.
Encarpetado histórico : los encarpetados de históricos se utilizan en los
formularios para ver la información de forma clasificada dentro de una reji- lla de histórico. Esta clasificación se realiza encarpetando los registros se- gún los valores de un determinado campo de la tabla de datos al que lla- mamos campo subclasificador.
Cesta de la compra : este objeto se utiliza, en tiempo de ejecución, para
guardar una serie de registros de una tabla de datos para su posterior utili- zación en otras partes del programa.
Hoja de cálculo : las hojas de cálculo generan una rejilla de valores, creán-
dose las filas automáticamente cuando, en tiempo de ejecución, se analiza la información.
Bases de datos externas ODBC-DAO : nos permiten acceder a ficheros
de otras bases a través del enlazador de bases de datos ODBC-DAO.
8.5.6. Dibujo
Son objetos que contienen un dibujo. Tales dibujos podrán ser incluidos en distintas partes de un proyecto como son los formularios, los menús de ti- po formulario, menús arbolados e informes.
El dibujo no puede ser modificado por el usuario final. Éste es el motivo por el que a veces se les denomine dibujos estáticos. Los dibujos dinámicos son los dibujos que el usuario incorpora a la aplicación en tiempo de eje- cución formando parte de sus datos.
Lupa
Encarpetado histórico Cesta de la compra
Hoja de cálculo Base de datos externas ODBC-DAO
Dibujo
modificación de COMPAÑIAS AEREAS, una rejilla de histórico en la que podamos ver los vuelos de la compañía según el país de desti- no del vuelo.
2. Crear una cesta de la compra para la tabla VUELOS (de la cuestión
anterior), que nos sirva para ir seleccionando todos los vuelos que nos interesen de entre los que oferte la compañía aérea.
3. Tenemos una aplicación de cine con unas búsquedas en la que se presentan las películas de un cierto director, actor, realizador, etc. Una vez presentada la rejilla con el resultado de la búsqueda, quere- mos ser capaces de discriminar entre películas en color, en blanco y negro y mudas. Resolver el problema mediante una lupa.
Una vez que se selecciona un objeto de este tipo en la Galería de Objetos, aparece la pantalla de edición. Debemos obtener entonces el dibujo, para lo que tenemos cuatro maneras: bien crearlo directamente vía OLE, bien a través del portapapeles, bien importar un fichero o bien vía Twain (Escáner).
Importación de dibujos
A través de OLE: debemos hacer doble clic sobre el área del editor de di-
bujos, abriéndose el programa asociado a Mapa de bits (Bitmap, .BMP) pu- diendo realizarlo en él. Una vez terminado salimos del programa (sin nece- sidad de guardar el resultado en un archivo) quedando incrustado en el ob- jeto. Salimos y este dibujo ya puede ser utilizado en la aplicación.
Portapapeles: en el caso del portapapeles, usando la opción del menú Edi- ción/Pegar, también podemos importar la imagen. Claro está que el dibujo
debe ser previamente copiado desde otra aplicación.
08
Desarrollo completo de una aplicaciónUna vez ejecutada la opción se muestra un cuadro de diálogo en el que se ha de seleccionar la forma en que la imagen va a ser guardada en el pro- yecto. Tiene las opciones Nº de bit de color por píxel: 1 (monocromo), 4 (16 colores), 8 (256 colores), 24 (16,7 millones de colores) y Comprimido.
Cuanto mayor sea el número de bits de color por píxel, mayor será la ocupación de la imagen en disco, por ello es aconsejable que, si inclui- mos dibujos en el proyecto, tratarlos previamente con algún programa de tratamiento de imágenes para guardarlos con una paleta de, al me- nos, 256 colores antes de incorporarlos al proyecto de Velázquez; la di- ferencia de calidad es inapreciable, pero el tamaño del proyecto dismi- nuirá considerablemente. Además, si activamos la casilla Comprimido cuando la imagen tenga una paleta de 8 bits (256 colores) o menos, ha- remos que el dibujo ocupe menos espacio en disco sin pérdida percep- tible de calidad.
Importación desde archivo: la tercera opción se ejecuta desde la opción del
menú Edición/Pegar desde. La imagen es importada leyendo el fichero se- leccionado en el cuadro de diálogo Abrir, el cual muestra el contenido de las unidades de disco del sistema o de la red. Los formatos de archivo po- sibles son: Mapa de bits (*.bmp, *.dib), Jpeg (*.jpg, *.jpeg), *.pcx y Targa
Vía twain: el cuarto método que hay es vía twain, de manera que podremos
obtener imágenes de un escáner, una cámara fotográfica digital y de cier- tas cámaras de vídeo (para capturar un fotograma). Si tenemos instalados varios, ejecutamos la opción Archivo/Seleccionar escáner para especificar el que vamos a utilizar. Para obtener la imagen ejecutamos la opción Archi-
vo/Digitalizar, y se ejecutará el programa de obtención de imágenes que
tengamos asignado al dispositivo seleccionado.
Propiedades del dibujo
Una vez obtenida la imagen, si pulsamos la tecla Intro o hacemos doble clic, editaremos el cuadro de propiedades del dibujo, en el que podremos darle una descripción, activarle o desactivarle la Transparencia, asignar el color
de transparencia en el caso de que esté activada, y los atributos de la ima- gen: alto, ancho y bits por píxel.
08
Desarrollo completo de una aplicaciónUna vez que incluimos un dibujo como objeto de Velázquez a partir de un fichero, éste puede ser borrado del disco, pues ya queda almacenado dentro del proyecto.
TRUCO
Si queremos que un usuario final de una aplicación de Velázquez pueda obtener imágenes vía twain hemos de ejecutar la opción Edición/Seleccionar fuente twain para especificar el dispositivo que va a utilizar; y para obtener la imagen ejecutará la opción Edición/Obtener imagen vía twain. Además para controles de campos tipo dibujo de un formulario, el formulario no puede estar definido en modo cuadro de diálogo, sólo pueden obtenerse desde formularios en modo vista (a pantalla completa).
Velázquez permite visualizar los dibujos con fondo transparente y para ello habrá que utilizar como color de fondo del dibujo uno que no se haya utili- zado en el mismo. Una vez importado a Velázquez, si activamos la casilla
Transparencia, a continuación se ha de especificar el color de fondo de
transparencia, apareciendo una ventana con la paleta de colores del siste- ma. Así, cuando se utilice dicho dibujo en un formulario no se verá el fondo del mismo.
La casilla de Precarga está pensada para la ejecución de aplicaciones con el Servidor de Aplicaciones de Velázquez Visual, para que los dibujos sean cargados o no en el momento de servir la aplicación a un Cliente. Si no tie- nen activada la casilla de precarga no serán enviados en el mapa, hacien- do que pese menos y sea más rápida su ejecución, siendo enviados los di- bujos restantes en tercer plano, sin ralentizar la transferencia de datos. En el Inspector de objetos por tipo podremos ver la lista de objetos dibujo y si tienen activada la casilla de Precarga o no.
Si hacemos doble clic con el botón izquierdo del ratón o seleccionamos la opción Edición/Objeto OLE, dicha imagen será cargada en el programa de edición de imágenes que tenga el sistema por defecto.
Identificadores especiales para dibujos
Dibujo ONPASSWORD: si le damos este identificador a un dibujo, Veláz-
quez lo utilizará para sustituir al que presenta el Ejecutor por defecto en el formulario de petición de Nombre de Usuario y Palabra Clave.
Así podemos utilizar nuestro propio logotipo o el de la empresa para la que se desarrolle una aplicación final. Para una óptima visualización del mismo es aconsejable utilizar un dibujo de 48x48 píxeles.
Otra forma de convertir un dibujo en ONPASSWORD es seleccionándolo en el panel derecho y ejecutando la opción Comunes/Convertir en/Icono usua-
rios. Si deseamos localizar el dibujo creado con este identificador ejecuta-
mos la opción Comunes/Localizar/Icono usuarios. Es aconsejable utilizar el
magenta como color de fondo, pues es un color que raras veces se utiliza.
TRUCO
Dibujo SPLASH: si se da este identificador a un dibujo, Velázquez lo pre-
sentará al ejecutar la aplicación tras aceptar la ventana de petición de usua- rio, antes de presentar el menú principal de la misma, mientras se están ini- cializando las tablas del proyecto.
Otra forma de convertir un dibujo en SPLASH es seleccionando el objeto en el panel derecho del editor y ejecutando la opción Comunes/Convertir en
splash. Para localizar un dibujo que hayamos definido como splash en la
aplicación ejecutamos la opción Comunes/Localizar splash.