Professional Documents
Culture Documents
ndice
Indice
15
17
19
21
23
23
23
23
24
27
29
30
32
34
35
39
39
41
42
43
44
45
47
49
51
51
51
53
53
54
55
60
61
61
61
96
108
108
110
134
190
208
272
277
277
287
10 11
Transacciones .............................................................................................
TAREAS .....................................................................................................
Exposicin del problema ............................................................................
Esquema de Tablas.....................................................................................
Objetos Visuales .........................................................................................
290
292
292
294
320
391
393
394
397
398
399
400
401
402
06. ASISTENTES......................................................................................................................
6.1. ASISTENTE PARA EDICIN DE FRMULAS ..........................................................................
6.1.1. Sintaxis de las frmulas. Operadores y funciones .....................................
6.1.2. Operaciones avanzadas..............................................................................
6.2. USO DE LAS CADENAS DE FORMATO................................................................................
6.2.1. Sintaxis de las cadenas de formato............................................................
6.2.2. El asistente para la edicin de cadenas de formato ..................................
6.2.3. Subcadenas de formato .............................................................................
6.2.4. Conversin automtica de datos y secuencias de escape en cadenas
de caracteres ..............................................................................................
405
407
408
413
421
421
422
423
427
429
431
431
433
434
434
435
437
4.6.
4.5.3.
AGENDA
4.6.1.
4.6.2.
4.6.3.
VELAZQUEZ VISUAL
DE
Indice
TOMO II
08. DESARROLLO COMPLETO DE UNA APLICACIN .......................................................
8.1. TIPOS DE TABLA ...........................................................................................................
8.1.1. Tabla Submaestra .......................................................................................
8.1.2. Tabla Arbolada ............................................................................................
8.1.3. Tablas histricas .........................................................................................
8.1.4. Maestro de segundo nivel con clave numrica ..........................................
8.1.5. Histrico doble ...........................................................................................
8.1.6. Creacin de una tabla igual a una base de datos externa .........................
8.2. TIPOS DE ENLACE .........................................................................................................
8.2.1. Asistentes para la creacin de enlaces ......................................................
8.2.2. Enlace a hermano contiguo........................................................................
8.2.3. Singular de plural por posicin...................................................................
8.2.4. Singular de plural por ndice.......................................................................
8.2.5. Enlace a tabla de datos indirecta real y virtual..........................................
8.2.6. Las actualizaciones .....................................................................................
8.2.7. Componente de actualizacin a un hermano contiguo..............................
8.2.8. Enlace a maestro de una tabla contra s misma.........................................
8.3. ANLISIS DE LA INFORMACIN: EJEMPLOS .......................................................................
8.3.1. Un centro de enseanza.............................................................................
8.3.2. Empresa de instalacin de cristalera para vehculos.................................
8.3.3. Aplicacin de anlisis para obras literarias.................................................
8.3.4. Una galera de arte .....................................................................................
8.3.5. Gestin de un colegio.................................................................................
8.3.6. Gestin de una librera................................................................................
8.3.7. Aplicacin para turismo rural......................................................................
8.3.8. Gestin de un Quiosco...............................................................................
8.3.9. Pedidos de compras...................................................................................
8.3.10. Aplicacin para control de existencias en almacenes (caso de compras) ..
8.3.11. Tienda de discos.........................................................................................
8.3.12. Hotel ...........................................................................................................
8.3.13. Base de datos de cine................................................................................
8.3.14. Gestin comercial.......................................................................................
8.4. EL ALMACN DE OBJETOS ............................................................................................
8.5. MS OBJETOS VISUALES ...............................................................................................
8.5.1. La Lupa
.................................................................................................
8.5.2. Encarpetado de Histrico
.....................................................................
8.5.3. Cesta de la compra
...............................................................................
8.5.4. Hoja de Clculo
.....................................................................................
8.5.5. Base de datos externa ODBC-DAO
......................................................
8.5.6. Dibujo
....................................................................................................
8.5.7. Multi-Iconos
........................................................................................
8.5.8. Imagen Gif
.............................................................................................
8.5.9. Barras de Herramientas
......................................................................
8.5.10. Impresora Lgica
..................................................................................
8.5.11. Comunicacin Serie
..............................................................................
8.5.12. rbol Visor de Tablas
..........................................................................
15
17
17
20
24
32
37
39
40
40
41
45
46
49
54
58
62
64
64
65
67
68
69
71
73
78
86
91
96
98
104
113
127
136
136
141
149
155
159
164
169
170
170
183
184
186
12 13
VELAZQUEZ VISUAL
8.5.13.
8.5.14.
8.5.15.
8.5.16.
8.5.17.
8.5.18.
8.5.19.
8.5.20.
8.5.21.
8.5.22.
8.5.23.
Casillero
................................................................................................
Agendizador
..........................................................................................
Informe
..................................................................................................
Pgina Html
...........................................................................................
Componente Html
................................................................................
Editor de Pginas Html...............................................................................
Procesos
...............................................................................................
Demonios
..............................................................................................
Funcin
...............................................................................................
Funciones de Procesos ..............................................................................
Ejecucin de procesos en primer, segundo y tercer plano en la arquitectura
VRunner y la arquitectura cliente-servidor de Velzquez Visual.................
8.5.24. Tubos ..........................................................................................................
8.5.25. Librera de Funciones DLL
...................................................................
8.5.26. Directorio de Tablas
............................................................................
189
205
207
253
256
258
279
287
288
289
404
406
419
424
431
433
433
435
436
437
437
439
439
440
442
443
444
448
448
449
452
453
454
454
459
462
471
473
476
478
479
480
480
483
485
Indice
486
487
489
492
493
495
495
496
497
497
498
499
500
500
502
503
504
505
506
507
507
508
508
510
513
514
516
519
527
532
534
534
536
537
538
543
544
547
547
548
549
560
563
563
564
564
566
567
14 15
VELAZQUEZ VISUAL
572
575
577
579
580
580
581
583
584
586
586
587
589
589
591
592
593
609
611
612
615
617
619
619
619
620
623
641
01
Introduccin
01
1.1
Nacimiento y evolucin
de Velzquez Visual
Introduccin
18 19
VELAZQUEZ VISUAL
01
momentneas (un ejemplo de esto es que no se usan tablas intermedias para resolver enlaces y bsquedas como hacen otros desarrolladores, sino
que se enlaza directamente con el dato requerido).
Tambin se sigue una metodologa estricta en la sintaxis de la programacin, lo que lleva a que la compilacin de Velzquez Visual no tenga ni un
solo error ni advertencia (0 errors, 0 warnings). En la programacin de Velzquez Visual no se ha escrito ni una sola lnea sin antes tener perfectamente claro lo que se buscaba.
1.2
Modelo real
Velzquez Visual trabaja con el denominado modelo real. En ste, a diferencia del modelo relacional, son las tablas las que se adaptan a la informacin
y no al revs. Los enlaces funcionan, es decir, sin necesidad de escribir lneas de cdigo son capaces de devolver registros en funcin del enlace que
establezcamos entre las tablas. Adems, dispone de una serie de enlaces
ms complejos e inexistentes en otros desarrolladores de aplicaciones.
Velzquez Visual cuenta con tablas de tipo maestro, caracterizadas por tener
un campo que identifica de forma inequvoca sus registros, adems de un ndice con clave nica o irrepetible (campo e ndice Cdigo), y que sern las tablas que ms usemos; tablas de tipo submaestro, que necesitan de una tabla padre (maestra) para completarse; tablas arboladas, que en realidad son
tablas maestras que se visualizan con una estructura arbolada (al estilo de un
rbol de directorios) muy til cuando trabajamos con familias; tablas histricas, que carecen de campo Cdigo y que nos permiten, entre otras cosas,
enlazar dos tablas cuando existe plural en las dos direcciones; y tablas estticas, para tablas que tienen pocos datos y stos son fijos, como los das de
la semana, los meses del ao, etc. (el usuario final no va a modificarlos).
Los enlaces ms comunes en Velzquez Visual son el enlace a maestro (singular), que relaciona un elemento de una tabla (histrica) con un elemento
de otra tabla (maestra) y el enlace a histrico (plural), que relaciona un elemento de una tabla (maestra) con varios elementos de otra tabla (histrica).
Gracias a estos enlaces podemos, dado un elemento de la tabla maestra,
obtener todos sus histricos, y dados una serie de registros de una tabla
histrica podemos obtener sus maestros.
Otro es el enlace a hermano contiguo. Gracias a este enlace seremos capaces de movernos por los registros de una tabla a travs de un ndice determinado. Supongamos, por ejemplo, una tabla en la que guardamos clientes.
El enlace nos permitira movernos por los registros correspondientes a clientes de una misma provincia. Este enlace es muy potente ya que tambin nos
permite lo que en Velzquez Visual se denomina Arrastrado, es decir, calcular
un campo en funcin de otro que tiene el registro anterior (anterior en funcin
de un ndice). Esto nos ser muy til para calcular saldos, existencias, etc.
Introduccin
20 21
VELAZQUEZ VISUAL
02
Instalacin de
Velzquez Visual
02
2.1
2.2
Requisitos mnimos
Velzquez Visual requiere un ordenador que cumpla, como mnimo, las siguientes caractersticas de hardware:
Pentium
Unos 24 MB de disco duro
16 MB de memoria RAM
En cuanto al software, necesitaremos Windows 95, 98, NT, 2000, XP.
2.3
2.4
Instalacin de
Velzquez Visual
24 25
VELAZQUEZ VISUAL
Editor de proyectos (fichero Edmap32.exe): contiene el entorno de desarrollo con el que se crean y modifican las aplicaciones. Estas aplicaciones sern almacenadas en ficheros con la extensin MAP (o VAM). Por ello, en
muchas ocasiones dentro del mundo Velzquez Visual a las aplicaciones se
les llama mapas.
Ejecutor de proyectos (fichero VRunner.exe): es el mdulo que ejecuta las
aplicaciones (o mapas) que se van creando. El ejecutor M se integra dentro
de la denominada arquitectura de red local. Bastar simplemente con
abrir el Ejecutor VRunner desde el propio Editor de Proyectos para ver en
ejecucin el mapa con el que estemos trabajando, pero ojo: desde el Ejecutor no es posible la modificacin de ningn mapa, por lo tanto, al usuario
final de la aplicacin que estemos diseando no le ser posible cambiar los
objetos del mapa ni sus propiedades. Con VRunner es posible ejecutar aplicaciones en modo monopuesto tanto en local como en red.
Importador X-base (fichero ImpXbase.exe): se trata de un pequeo programa que permite incorporar los datos incluidos en bases de datos de tipo
ASCII o de Dbase a la base de datos de Velzquez Visual. En general no
suele ser muy utilizado; ya veremos qu otros mtodos se utilizan en Velzquez Visual para importar y exportar datos.
Editor de Personalizaciones (EdPer.exe): es el programa que permite realizar personalizaciones diferentes a un mismo mapa. De esta manera, de un
mismo mapa podemos hacer diferentes versiones para distintos clientes,
cambiando o aadiendo imgenes, informes y otros objetos susceptibles
de personalizacin, que sern almacenadas en archivos independientes al
mismo.
Los dos programas siguientes se engloban dentro de la denominada arquitectura cliente-servidor.
Servidor de aplicaciones (fichero VMotor.exe): es el mdulo servidor. Sirve
aplicaciones de Velzquez Visual a los clientes va Navegador de Velzquez
y pginas web a clientes va navegadores de Internet (por ejemplo, Netscape o Iexplorer). Adems es tambin un servidor de disco.
Navegador de Velzquez (fichero iRunner.exe): se trata del mdulo Cliente.
Realiza la conexin con el servidor va TCP-IP, siendo adems un explorador web y explorador cliente de disco.
2.5
02
ner en modo monopuesto, como por el Servidor de Aplicaciones en modo
multiusuario). ste ser el archivo sobre el que el programador trabaje. Para guardar un proyecto en este modo slo hemos de ejecutar la opcin del
Edmap Archivo/Guardar o Archivo / Guardar como.
VAM: un proyecto que haya sido guardado con este formato no puede ser
editado en el Editor de Proyectos de Velzquez pero s ejecutado (tanto por
el VRunner como por el Servidor de Aplicaciones, como en el caso anterior).
El proyecto se guarda de forma encriptada y la ocupacin en disco es menor que la de un archivo .MAP. Archivos con este formato sern los que habitualmente se suministren a la hora de instalar las aplicaciones finales. Para guardar un archivo en este modo hemos de ejecutar la opcin del Edmap
Archivo/Guardar aplicacin, pero ojo, el VAM no puede ser guardado si no
se ha guardado antes el MAP.
Por otro lado, al trabajar con una aplicacin de Velzquez Visual se generan
una serie de ficheros. Vemoslos:
.DAT: fichero de datos. Contiene los registros introducidos en una tabla de
datos.
.OLD: fichero de datos viejo. Cuando cambia la estructura de datos de una
tabla al reestructurarse en ejecucin, sta se guarda con su estructura anterior con la extensin .OLD. Su creacin puede ser omitida.
.IDX: fichero de ndices. Contiene los ndices que se hayan definido para
una tabla de datos.
.CND: contenedor. Este tipo de ficheros contienen todos los objetos tales
como los de tipo dibujo, texto y texto enriquecido que el usuario final vaya
incluyendo en cada tabla.
.CNI: ndices del contenedor. Este fichero recoge los ndices para los objetos del contenedor.
.BAK: copia de seguridad del mapa de datos. Cuando se guarda un mapa
de datos (.MAP), se genera automticamente una copia de seguridad con
la ltima versin guardada del mismo. Para recuperarla basta con renombrar el fichero que tenga esta extensin con la extensin .MAP.
.TRN: fichero de transacciones. Recoge las transacciones que se realizan y
ser el que permita deshacer una transaccin cuando ha habido una cada
del sistema mientras se ejecutaban procesos de transacciones.
.USR: fichero de usuarios. En l se guarda toda la informacin relativa a los
grupos de usuarios definidos en el mdulo ejecutor de programas. Este fichero es generado al ejecutar aplicaciones con VRunner, no con el Servidor
de Aplicaciones.
.VAR: fichero de variables. En l se guardan a modo de lista todas las variables creadas para un proyecto de datos cuya propiedad es en disco.
Instalacin de
Velzquez Visual
26 27
VELAZQUEZ VISUAL
03
Interfaz del Editor
de Proyectos
03
3.1
Vamos a crear un nuevo proyecto: para ello entramos en el editor y seleccionamos la opcin de men
Archivo/Nuevo. Al generar el archivo aparecer la ventana principal del proyecto, en la que se muestran tres reas
bien definidas:
Estructuras de datos (a): aqu se almacenan las tablas de datos que vayamos creando, distinguiendo las tablas estticas del resto por su particularidad. Tambin accedemos a las plantillas de campo que se usarn para
crear nuevos campos dentro de las tablas, a las bases de datos externas
conectadas por medio de ODBC y a las libreras de funciones DLL.
Variables: en esta regin se crean y almacenan las variables globales. Sern organizadas con ayuda de carpetas y subcarpetas.
rea de Objetos: aqu se incorporan los objetos visuales. stos se han de
crear para cada tabla de datos (no todos han de asociarse a una tabla) y los
organizaremos tambin por medio de carpetas.
En cada una de las tres partes de la ventana principal podemos encontrar
dos columnas: en una ir el nombre del objeto y en la otra la descripcin.
Archivo/Nuevo
30 31
Imprimir
Nuevo
Abrir
Cerrar
VELAZQUEZ VISUAL
Podemos imprimir listados con todos los objetos del panel izquierdo (lista
de tablas y sus elementos, tablas estticas y variables globales). Para ello
ejecutamos la opcin Archivo/Modo Imprimir todo antes de seleccionar la
opcin de men Archivo/Imprimir (Ctrl-P) o pulsar el botn Imprimir
.
Tambin podemos presentar un listado con todos los objetos visuales del
panel derecho, incluyendo el icono asociado a cada objeto y el identificador de los mismos. Para lanzar el informe tendremos que situarnos en el
panel derecho del editor y posteriormente ejecutar la opcin de men Archivo/Imprimir (Ctrl-P) o pulsar el botn Imprimir
.
Guardar
Guardar aplicacin
Imprimir
Presentacin preliminar
Archivo
Enviar
Deshacer
Rehacer
Cortar
Copiar
Pegar
Propiedades proyecto
Tareas pendientes
Por ltimo, tenemos una lista de aquellos archivos que hemos abierto en
anteriores ocasiones y que podemos abrir al seleccionarlos, as como la opcin de salir del programa (Salir).
Estilos de Usuarios
Al igual que en el resto del men, tenemos la posibilidad de abrirlo y ejecutar los comandos con ayuda de la tecla ALT y la letra subrayada en cada
uno de los comandos.
Edicin
Inspectores
En este men encontramos una serie de inspectores que nos sern de gran
ayuda. Podemos ver los campos que tiene cada tabla (
De tablas y cam-
03
pos... F10), en dnde o qu objetos usan el objeto que tenemos seleccionado
(
Dnde se usa el objeto... F9), qu objetos a su vez usa el que tenemos
seleccionado (
Qu objetos usa...). Tambin podemos localizar aquellos objetos que no se usan en el proyecto (
Objetos no usados). Adems, podemos buscar por tipos de objeto (
Por tipo de objeto... Ctrl+F9) y aquellos
objetos que tienen un cierto color (
Objetos de un color). Otra opcin es
buscar una cadena dentro del contenido de las frmulas usadas a lo largo
del proyecto (
Contenido frmulas).
Objetos
En este men encontramos opciones para editar los objetos, tanto visuales
como tablas, etc. (
Editar... Intro). Tambin podemos ver las propiedades
de esos objetos (
Propiedades... Alt+Intro) o cambiar su identificador (
Cambiar identificador F2).
Editar
Propiedades
Cambiar identificador
Nuevo/Objeto
Almacn de objetos
Suprimir Supr
Por ltimo, nos permite crear una tabla igual a una externa perteneciente a
una base de datos externa conectada por ODBC (Crear tabla igual a externa), as como crear un localizador con rejilla (Crear localizador con rejilla).
Campos
El men Campos nos permite crear un campo que controle la fecha y hora
del alta, baja, o modificacin de un campo objeto (
Crear campos fecha/hora campo objeto), as como un campo que almacene las dimensiones de un dibujo introducido en un campo tipo objeto dibujo (
Crear campos dimensiones dibujo).
Tambin tenemos asistentes para crear los diversos tipos de punteros que
hay en Velzquez Visual (ms adelante los veremos con detalle).
Comunes
El men Comunes contiene opciones para Localizar y Convertir objetos. Podemos localizar los siguientes objetos: Icono de Usuarios, Imagen de
Splash, Proceso de Inicio, Men Inicial, Men de Cierre de Aplicacin y Pgina Html Principal. Mientras que es posible convertir el objeto seleccionado, dependiendo del tipo, en uno de los anteriores.
Ver
El men Ver contiene las opciones siguientes:
Barra de herramientas: para ver o dejar de ver la barra de herramientas.
Tambin es posible esconder/ver una barra de herramientas a travs del
men de contexto de las mismas, pulsando el botn derecho del ratn so-
32 33
VELAZQUEZ VISUAL
bre el rea de la barra. Activando o desactivando el check box que se encuentra junto al nombre de cada barra de herramientas, sta estar o no estar visible.
Otras opciones del men Ver son: Barra de estado, para ver o dejar de ver
la barra de estado de Velzquez Visual, situada en la parte inferior de la pantalla. Personalizar, dar acceso a la ventana para personalizar tanto la barra
de herramientas como el entorno de trabajo. Pantalla completa (F11), visualiza u oculta la barra de mens y la barra de estado del Editor y Senda
completa: permite visualizar/ocultar en el ttulo de la ventana del Editor la
senda completa del proyecto actual.
Ventana
El men Ventana contiene las opciones habituales de Windows: Cascada,
Mosaico Horizontal, Mosaico Vertical y Arreglar Iconos, ms otras propias
que son: Organizador, cada ventana abierta ser presentada dentro de una
pestaa, por lo que para moverse de una a otra bastar con pulsar con el ratn sobre la pestaa deseada. Esquema de tablas, permite acceder a la pantalla de creacin de esquemas, donde podremos crear de forma grfica las
estructuras de informacin de la aplicacin. Panel siguiente, presentar el siguiente panel abierto y Panel anterior presentar el panel anterior abierto.
Tambin se presenta una lista de los mapas abiertos en el Editor al mismo
tiempo, pudiendo seleccionar cul de ellos quiere abrirse y mostrando cul
es el actual.
? (Ayuda)
En el men Ayuda encontraremos las opciones Ayuda de Velzquez y Acerca de EDMAP.
Nuevo proyecto
Abrir proyecto
Guardar proyecto
Guardar aplicacin
03
el Servidor de Aplicaciones). Un archivo guardado en este modo ocupa menos espacio en disco que un archivo .MAP. Dadas sus caractersticas ser
el archivo ms apropiado para suministrar a sus clientes.
Ejecutar proyecto: para ver la ejecucin del proyecto.
Propiedades proyecto: para definir o modificar las caractersticas del
proyecto (protecciones, usuarios, etc.).
Paneles: para volver a los paneles del Editor est donde est.
Ejecutar proyecto
Propiedades proyecto
Paneles
Esquema
Cortar
Pegar
Copiar
Propiedades: para aquellos objetos, como por ejemplo informes o formularios, que al pulsar intro sobre ellos se muestra directamente la pantalla de edicin, puede obtener directamente su cuadro de propiedades pulsando este botn o pulsando la combinacin de teclas Alt+Intro.
Nuevo objeto
Almacn de objetos
Propiedades
Nueva carpeta
Nuevo campo
Nuevo ndice
Nuevo enlace histrico
Nueva actualizacin
34 35
VELAZQUEZ VISUAL
Dnde se usa
Pulsando con el botn derecho sobre cada uno de los tres paneles de la
ventana principal del proyecto aparecen unos mens de contexto que pasamos a explicar.
Suprimir
Cambiar Identificador
ESTRUCTURA DE DATOS
Aparece al pulsar con el botn derecho del ratn sobre el rea de estructura de
datos. En este men podemos manejar el rbol de la estructura de datos: cerrar la carpeta superior al elemento que tenemos seleccionado (
Cerrar carpeta superior), abrir completamente la carpeta seleccionada (
Abrir carpeta
completa), o cerrarla (
Cerrar carpeta completa). Tambin podemos abrir (
Abrir rbol completo) o cerrar el rbol completo (
Cerrar completo).
Podemos aadir objetos al proyecto (Nuevo objeto), o crear una tabla de
datos en Velzquez Visual con igual estructura que una Base de datos externa (Crear tabla igual a externa).
Adems veremos dnde se usa un objeto (
Dnde se usa, F9), suprimirlo (
Suprimir, Supr), cambiar el identificador del objeto seleccionado (
03
Cambiar Identificador F2), ver sus propiedades (
Propiedades..., Alt+Intro), o si lo que seleccionamos es una tabla, ver sus objetos (
Objetos de
la tabla... Intro).
Panel de Variables
Aqu tenemos estas opciones ms: crear una nueva carpeta (
Nueva carpeta) o subcarpeta (
Nueva carpeta hija) para ordenar las variables. Podemos insertar una nueva variable (
Insertar variable, Ins), seleccionar el
color de su identificador (
Cambiar color... F3), o pasarlo a negro (Quitar
color, Shift+F3).
Propiedades
Objetos de la tabla
Nueva carpeta
Nueva carpeta hija
Insertar variable
Cambiar color
Nuevo objeto
Icono usuarios
Splash
Proceso inicio
Men inicial
3.2
Esquema de Tablas
36 37
VELAZQUEZ VISUAL
Esta nueva ventana nos la ha abierto en un separador distinto. Esto facilitar la tarea de diseo de una aplicacin ya que podremos pasar de la
ventana principal al esquema de tablas pulsando el separador correspondiente.
De momento no nos vamos a fijar mucho en cmo se crea una tabla, simplemente seleccionamos Maestro normal con clave numrica y aceptamos.
Aparecer una ventana de propiedades para la creacin de un maestro en
la que nicamente rellenamos los controles Nombre: Plural y Singular, escribiendo por ejemplo Registros y Registro (respectivamente) y aceptamos.
03
38 39
VELAZQUEZ VISUAL
En esta ventana creamos de forma grfica y visualmente las tablas que queramos, las distribuiremos por pantalla de la forma que ms nos interese y,
simplemente, pinchando en el
enlazador de una y arrastrando a otra,
Velzquez Visual crear las relaciones entre las mismas automticamente.
Al volver al Editor de Proyectos podremos comprobar que se han creado todas las tablas de datos y los enlaces entre las mismas.
Los esquemas tienen otra funcin muy importante, que es poder consultar
en todo momento la estructura de nuestro proyecto y, si as lo queremos,
dividirla en varios esquemas que representen las relaciones entre tablas que
nosotros seleccionemos. Siempre que carguemos un proyecto, tendremos
disponibles todos los esquemas que hayamos creado en el mismo. Adems, podremos imprimirlos.
Desde un esquema podremos editar el cuadro de las propiedades de una
tabla, los campos y los ndices.
Una vez que tengamos claro qu tablas van a intervenir en un proyecto,
cuando vamos a crear ste, la primera vez que entramos en la ventana de Esquema de Tablas, Velzquez Visual presentar automticamente el Asistente
para la creacin de tablas, donde como hemos hecho antes, seleccionaramos una plantilla que queramos usar (maestro, por ejemplo), y crearamos la
tabla a partir de sta. Podremos ver una vez terminado cmo en el panel de
la derecha ya se ha dibujado la tabla con su correspondiente nombre.
A partir de ah iremos creando el resto de tablas y estableciendo los enlaces que nos interesen. Este esquema se llama por defecto Esquema de tablas y ser el que tengamos habitualmente en todas nuestras aplicaciones.
A partir de ste, crearemos otros en los que nos centraremos en aspectos
ms especficos para facilitar el anlisis de la aplicacin.
Cuando creamos nuevas tablas y enlaces en estos otros esquemas, stos
no son exclusivos del esquema, sino que podremos verlos en todos los dems seleccionndolos en el panel izquierdo de Tablas no usadas. Y si eliminamos una tabla de un esquema, esto no quiere decir que la eliminemos del
mapa, nicamente dejamos de visualizarla en el esquema que estamos editando. Para eliminar tablas del proyecto hemos de ir a la ventana de proyectos y eliminarlas del panel izquierdo.
Para eliminar enlaces que hemos creado hemos de borrar los elementos
que se crean al establecer un enlace. Ms adelante veremos cules son.
03
Esquema
Con este men tenemos la posibilidad de crear un nuevo esquema a partir
de las tablas que tenemos en el proyecto (Nuevo). Podemos duplicar el que
tenemos seleccionado y estamos editando en ese momento (Duplicar) o eliminar el esquema de la lista (Eliminar). Para cambiar el nombre de un esquema usaremos Cambiar nombre (F2).
Tambin podemos aadir o quitar tablas del esquema segn nos convenga
presentarlas o no (Aadir tabla, Quitar tabla).
Podemos tambin marcar o desmarcar todas (Marcar todas, Ctrl+M, Desmarcar todas, Ctrl+D). Esto quiere decir, como veamos al hablar del panel
izquierdo de la ventana de esquemas, que segn estn o no marcadas las
tablas, veremos los enlaces de stas.
Por ltimo, podemos hacer que sean nicamente ciertos punteros los que
se vean usando la opcin Ver punteros y eligiendo aquellos que queremos
activar o desactivar.
Ninguna de estas opciones implica eliminar elementos del mapa, tanto tablas como enlaces. El efecto es que no se vern en el esquema. Normalmente tendremos un esquema en el que veremos todos los enlaces y tablas
del proyecto y luego otros con partes ms concretas del esquema para un
mejor anlisis.
Maquetar
Con este men podemos acceder a la opcin
Tamao del contenido, F7,
que nos permite redimensionar el tamao del marco de una tabla en el esquema para poder ver su nombre completo.
Tablas
Objetos de la tabla
Con esta opcin de men podemos crear una nueva tabla, de modo que se
abrir el Asistente para la creacin de una tabla de datos (Crear nueva tabla, Ctrl+T) o bien crearla a partir de una plantilla seleccionando el tipo directamente (Crear nueva tabla de tipo...).
Podemos editar las propiedades de una tabla una vez creada (
Propiedades de la tabla..., Alt+Intro), o los objetos que sta posee (
Objetos de
la tabla, Intro).
Propiedades de la tabla
Panel izquierdo
40 41
VELAZQUEZ VISUAL
Nueva tabla maestra: para crear una tabla de tipo maestro normal con
clave numrica.
Nueva tabla arbolada: para crear una tabla de tipo maestro con clave arbolada.
Nueva tabla histrica: para crear una tabla de tipo histrico.
Propiedades tabla: para editar las propiedades de una tabla una vez seleccionada. Tambin podemos editar sus propiedades pulsando la combinacin de las teclas Alt+Intro, o usando la opcin de men Tablas/Propiedades de la tabla.
Objetos de la tabla: para editar los objetos de una tabla (campos, ndices, etc.). Podemos tambin hacer doble clic con el botn izquierdo del ratn sobre ella dentro del esquema o seleccionarla y ejecutar la opcin Tablas/Objetos de la tabla.
Una vez creadas todas las tablas del proyecto, comenzaremos a pintar los
enlaces entre ellas: se pintan desde la tabla maestra hacia su histrica. Para
ello hacemos clic con el botn izquierdo del ratn sobre el
enlazador que
se encuentra en la parte superior izquierda del dibujo de la tabla maestra que
enlazaremos, arrastramos el ratn hasta la tabla con la que queremos enlazar y dejamos de pulsar el botn. Automticamente, se pintarn los enlaces
entre ambas tablas y el programa habr creado en la tabla histrica el campo enlazado a la maestra con su ndice correspondiente, mientras que en la
maestra crea el enlace histrico. Para crear los enlaces tambin disponemos
de los siguientes botones, que nos abrirn los correspondientes asistentes:
Crear punteros con histrico: crea un enlace a maestro en la tabla histrica y un enlace a histrico en la maestra.
Crear puntero indirecto real: crea un enlace indirecto real a una tabla.
Crear puntero indirecto virtual: crea un enlace indirecto virtual.
Crear puntero singular-plural por posicin: crea un enlace singular de
plural por posicin.
Crear puntero singular-plural por ndice: crea un enlace singular de plural por ndice.
Crear puntero hermano: crea un enlace a hermano contiguo.
Para activar o desactivar la visualizacin de los distintos enlaces tenemos
los siguientes botones:
Ver punteros a maestros: visualizacin de los enlaces singulares a
maestro.
03
Ver punteros abuelos de submaestros: visualizacin de enlaces singulares a abuelos de submaestros.
Pulsando con el botn derecho del ratn sobre una tabla se abre un men
de contexto que nos permite acceder a las siguientes opciones: ver las propiedades de la tabla seleccionada (
Propiedades de la tabla, Alt+Intro),
sus objetos (
Objetos de la tabla..., Intro), o ver dnde se usa (
Inspector: Dnde se usa la tabla..., F9). Tambin podemos ver las tablas del
proyecto con todos sus campos (
Inspector: De tablas y campos..., F10).
Podemos adaptar el tamao del dibujo de la tabla al nombre que deben
mostrar para que no aparezca cortado (
Maquetar: Tamao del contenido, F7).
Con las opciones
Crear punteros con histrico...,
Crear puntero indirecto real...,
Crear puntero indirecto virtual...,
Crear puntero singular-plural por posicin...,
Crear puntero singular-plural por ndice...,
Crear puntero hermano... creamos una serie de punteros dentro de la tabla
seleccionada lanzando sus asistentes.
Situando el ratn sobre un enlace se muestra un texto informativo sobre el
mismo: cules son la tabla origen y destino, y qu campo o qu histrico es
el que los enlaza.
ESQUEMA DE TABLAS
42 43
VELAZQUEZ VISUAL
3.3
VENTANA PERSONALIZACIN
03
3.3.1. Personalizacin de Barras de Herramientas
44 45
VELAZQUEZ VISUAL
Se incluye un comando de tipo COMBO BOX que puede ser muy til a la
hora de editar varios proyectos al mismo tiempo; si incluimos dicho control
en la barra de herramientas del Editor, en todo momento indicar el nombre
y la senda del proyecto actual (esta ltima si est activada la opcin del men Ver/Senda completa).
Si se han aadido nuevos comandos a la barra de herramientas del Editor
y se desea que sta vuelva a tener su formato inicial, la seleccionaremos en
la pestaa Toolbars y pulsaremos el botn Reiniciar.
03
En la regin Inicio de la aplicacin nos encontramos con las siguientes cajas de verificacin:
Maximizado: activando esta opcin nos aseguramos de que el Editor se
abra siempre maximizado, si no, recordar el tamao que tena cuando se
cerr por ltima vez.
Abrir ltimo proyecto: si activamos esta casilla Velzquez abrir el ltimo
proyecto en el que estuvimos trabajando.
Sonido de presentacin: al abrirse el Editor ste se presenta con un sonido.
En la regin Lista de ltimos proyectos se encuentra el control N de Proyectos, en el que indicamos cuntos proyectos queremos que nos presente el Editor al desplegar el men Archivo, mientras que en el control Senda
del Almacn indicamos dnde se encuentra el almacn. Si pulsamos el botn
, Velzquez nos mostrar una ventana de seleccin de directorio para elegir aquel donde se encuentra el Almacn.
Examinar
46 47
VELAZQUEZ VISUAL
raz parten otros nodos que, a su vez, contienen otros nodos, etc.). Pues
bien, en la regin rboles ver configuramos los siguientes puntos:
Cabecera: tanto el panel izquierdo como el panel derecho del Editor tienen
una cabecera; si esta opcin se encuentra activada stas estarn visibles,
si est desactivada, no.
Lneas de jerarqua: si esta opcin est activada se visualizarn las lneas
entre los nodos de los rboles.
Lnea de jerarqua en la raz: si esta opcin est activada se visualizar una
lnea de jerarqua entre los nodos races de los rboles.
Botones ms/menos: si una rama de un rbol contiene subramas y esta opcin est activada, se mostrar un botn en la rama, de modo que si contiene el signo + la abrir y si contiene el signo la cerrar.
Planchado: si esta opcin est activada el ancho de las columnas de los paneles del editor se ampliar o reducir en funcin del tamao de la ventana
del Editor de Proyectos.
Lneas entre objetos: si esta opcin est activada se visualizarn lneas horizontales entre los objetos.
Lneas entre columnas: si esta opcin est activada presentar lneas divisorias de cada columna de cada uno de los paneles del Editor.
03
Alto de fila variable segn contenido: con esta opcin activada y si no cabe
en una misma lnea el identificador y la descripcin de un objeto, esto provocar que tanto el identificador como la descripcin de un objeto sean
multilneas; es decir, ambos aparecern en varias lneas de texto. Si esta opcin est activada y se pulsa la tecla F2 para modificar el identificador de
un objeto, al ser multilneas no podemos pulsar la tecla Intro para aceptar
el cambio de identificador, pues sta provocar un salto de lnea. Para
aceptar los cambios pulsamos de nuevo F2 y la tecla Esc.
Iconos grandes: marcando esta opcin aumentaremos el tamao de los iconos y la tipografa en la ventana principal del editor.
En la regin Seleccin tenemos las opciones:
Fila completa: si esta opcin se encuentra activa, cuando seleccionemos un
tem en cualquiera de los paneles del Editor se visualizar en vdeo inverso
toda la fila en la que se encuentre el mismo. Si est desactivada, solamente aparecer en vdeo inverso el identificador del objeto seleccionado.
Siempre visible: si esta opcin est activada el objeto que se encuentre seleccionado en cada panel del editor siempre estar en vdeo inverso. Si est desactivada, solamente se encontrar destacado el seleccionado del panel activo.
Por defecto, el negro es el color que se utiliza para el color del texto de los
identificadores de los objetos. Si queremos destacar de algn modo los objetos que se creen a partir de un momento determinado, seleccionamos un
color en el control Color objetos nuevos, que ser el que tenga el texto de
los objetos que se creen a partir de ese momento. La especificacin del color de los nuevos objetos tambin puede ser hecha a travs del men de
contexto que se presenta al pulsar el botn derecho del ratn sobre cualquier objeto del Editor de Proyectos.
48 49
VELAZQUEZ VISUAL
Color de los punteros singulares a: maestro, submaestro, indirecto real e indirecto virtual.
Color de los punteros plurales (enlaces a histricos).
Color de fondo de la pantalla de los esquemas.
Tamao y tipo de fuente utilizada.
Ancho enlazador: ancho de las puntas de las flechas de los enlaces.
Alto de barra de tablas maestras: donde se incluye el control sobre el que
se ha de pinchar y arrastrar para generar un enlace maestro.
El botn Por defecto, restaura todos los valores por omisin de los esquemas de Velzquez.
04
Desarrollo bsico
de una aplicacin
04
4.1
Desarrollo bsico
de una aplicacin
52 53
VELAZQUEZ VISUAL
REJILLA
Desde las rejillas podemos llamar a los formularios, con los que daremos de
alta, baja o editaremos una ficha.
FORMULARIO
04
Desarrollo bsico
de una aplicacin
MEN
Adems de stos, existen otros objetos visuales como el informe, que nos
permite imprimir datos; el localizador, que permite obtener un registro de
una tabla de datos; la lupa, que filtra fichas en una lista; el dibujo y el multi-icono, que usaremos para manejar imgenes; la Pgina Html y el Componente Html, que usaremos para servir Web, etc.
4.2
Iniciando el proyecto
Para iniciar un nuevo proyecto seguiremos, como norma general, los siguientes pasos:
Nuevo Proyecto
54 55
VELAZQUEZ VISUAL
EDITOR DE PROYECTOS
04
Al hacer clic en esta opcin Velzquez Visual nos mostrar una ventana en
la que indicaremos al programa qu fuentes por defecto asignamos a los
objetos visuales: Rejillas, Formularios, Informes, Casilleros y Mens. Para
ello utilizaremos en cada pestaa el botn
Aadir.
Desarrollo bsico
de una aplicacin
e
Aadir
Propiedades del proyecto
Es mejor utilizar fuentes habituales (Arial, Times New Roman, etc.) y procurar no utilizar fuentes extraas, que pueden no estar instaladas en el equipo
del usuario final y ocasionen que no se visualice bien la informacin. De todos modos, si utilizamos fuentes no habituales conviene incorporarlas junto
con la instalacin del desarrollo que creemos para que no haya problemas.
56 57
VELAZQUEZ VISUAL
ADVERTENCIA
Nunca nombrar el proyecto
del mismo modo que alguna
de las tablas que lo
componen, ya que entonces
no podr ejecutarse.
PESTAA ESTILOS
04
Pedir Usuario: activando esta opcin, al ejecutar la aplicacin se mostrar un cuadro de dilogo en el que habr que especificar un nombre de
usuario y su contrasea. Trabajando en arquitectura local (VRunner) la
primera vez que se ejecuta el proyecto, el nombre de usuario escrito ser tomado como el del usuario administrador. Tambin implica que la
aplicacin ser multiusuario en el caso de usar Servidor de aplicaciones
(aunque con VRunner sigue siendo monopuesto), es decir, que podr ser
ejecutada por varios usuarios al mismo tiempo, pudiendo tener cada
usuario un men de arranque distinto.
Nmero mximo de grupos: nmero mximo de grupos de usuarios que
crear para su aplicacin final.
Pantalla completa: activaremos esta opcin si deseamos que la aplicacin se ejecute en modo de pantalla completa, es decir, sin la barra de
mens, sin la barra de estado y sin la ventana principal del Ejecutor de
Proyectos o Navegador. Tanto en el Editor como en el Ejecutor, la tecla
F11 activar o desactivar el modo de pantalla completa.
Barra de herramientas
Por defecto: el proyecto visualizar o no la barra de herramientas por
defecto de Velzquez Visual, en funcin de si el usuario final activa o
desactiva la opcin del ejecutor Ver/Barra de herramientas.
Visible: el programa siempre se ejecutar visualizando la barra de herramientas.
Invisible: el programa siempre arrancar sin mostrar la barra de herramientas.
Barra de Estado
Por defecto: el proyecto visualizar o no la barra de estado, en funcin de si el usuario final activa o desactiva la opcin del ejecutor
Ver/Barra de estado.
Visible: el programa siempre se ejecutar visualizando la barra de estado.
Invisible: el programa siempre arrancar sin mostrar la barra de estado.
Organizador: mediante esta forma de visualizacin todas las ventanas
que estn abiertas se organizarn a modo de separadores. As que, para cambiar de ventana, simplemente tenemos que hacer clic con el ratn sobre la pestaa correspondiente.
Por defecto: el proyecto visualizar o no el organizador, en funcin de
si el usuario final activa o desactiva la opcin del ejecutor Ver/Organizador.
Desarrollo bsico
de una aplicacin
58 59
VELAZQUEZ VISUAL
Archivo: permite activar las opciones Abrir, Registro de ficheros, Transacciones, Contenedor.
Ventana / Ver: permite activar las opciones Organizador y Pantalla completa.
Dentro de la pestaa Protecciones, tenemos el apartado Palabra clave para editar si se quiere que al abrir el mapa Velzquez Visual pida la contrasea que hayamos incluido aqu. Esto le permitir proteger sus fuentes.
De todos modos no es aconsejable distribuir el fichero .map a un cliente
final pues es editable. Lo ms conveniente es servir el fichero .vam, no
editable.
El apartado Caducidad permite realizar una demo de nuestro producto. Si
marcamos el check Protegido podemos indicar cul ser la fecha de caducidad de la demo o el nmero de ejecuciones que permite, o ambas al tiempo. Para una mayor seguridad lo mejor es combinar los dos mtodos. Si la
aplicacin caduca por nmero de ejecuciones, la nica forma que tendr el
usuario de seguir ejecutando la aplicacin ser mediante el borrado de las
tablas de datos, pues es en ellas donde se computa el nmero de ejecuciones de la aplicacin.
Tambin puede incluirse un texto que ser el mensaje que aparezca al caducar la demo.
04
PESTAA PROTECCIONES
Por ltimo, si estamos trabajando con el editor PS (Proteccin Sentinel), encontraremos una pestaa ms en la ventana Propiedades proyecto; la pestaa Sentinel.
PESTAA SENTINEL
Desarrollo bsico
de una aplicacin
60 61
VELAZQUEZ VISUAL
Para crear una nueva tarea pendiente pulsamos el botn Nueva (o la combinacin de teclas Alt-N), crendose con el identificador Nueva. En la parte superior se mostrar la informacin sobre las distintas tareas que haya
creado: en Creacin se mostrar la fecha y la hora en que una tarea ha sido creada. En Caducidad aparece la fecha y hora en que caducar una tarea pendiente (fecha lmite estimada para la tarea pendiente). El programa,
por defecto, propone para la fecha y hora de caducidad la misma hora del
da siguiente.
En la parte inferior de la ventana podremos modificar tanto la fecha como
la hora lmite de ejecucin y, adems, escribir las observaciones que deseemos sobre la tarea pendiente editada. Si queremos eliminar una tarea, la
seleccionamos y pulsamos el botn Eliminar.
La opcin restante del men Edicin: Estilos de Usuarios, la veremos ms
adelante.
04
4.3
Esquema de tablas
Desarrollo bsico
de una aplicacin
62 63
VELAZQUEZ VISUAL
Regin de Datos de la descripcin: aqu especificaremos los datos correspondientes al campo NOMBRE.
04
Desarrollo bsico
de una aplicacin
Nombre del campo: descripcin que va a tener el campo NOMBRE de la tabla. Por defecto aparece Nombre.
ndice alfabtico, por palabras o por trozos de palabras: si queremos que
Velzquez Visual cree alguno de estos ndices simplemente deberemos
marcar su correspondiente casilla. Por defecto todas aparecen activadas.
Nombre del ndice: descripcin que va a tener cada uno de los ndices anteriores.
Si sobre una tabla hacemos doble clic con el botn izquierdo del ratn o
pulsamos la tecla Intro, se presentar un cuadro de dilogo con todos sus
componentes.
Aadir campo
Crear nuevo campo enlazado
Nuevo ndice
64 65
VELAZQUEZ VISUAL
Nuevo ndice del campo: crea un nuevo ndice a partir del campo seleccionado.
Nuevo enlace histrico: crea un enlace histrico en la carpeta de histricos a una tabla, por el ndice que escojamos. El ndice usado siempre debe
tener como primer componente el campo enlazado a esta tabla maestra.
Nuevo evento
Suprimir
Subir y Bajar
Editar
Cambiar identificador
Cortar, Copiar y
Pegar
Salir
Propiedades de tabla
04
Desarrollo bsico
de una aplicacin
TRUCO
Conviene identificar las
tablas de datos con
nombres escuetos e
intuitivos que en todo
momento nos recuerden la
razn por la que ha sido
creada. No debemos usar
caracteres especiales en el
nombre de las tablas.
66 67
VELAZQUEZ VISUAL
En memoria: son de carcter local, tiles cuando queremos tablas temporales sobre las que trabajar como con cualquier tabla en disco. En muchas
ocasiones se utiliza este tipo de tablas para realizar una serie de operaciones cuyo contenido ya no es necesario una vez finalizadas. Su contenido
desaparece al cerrar la aplicacin.
ADVERTENCIA
En arquitectura Cliente Servidor las tablas en
memoria no tienen
contenedor, con lo que no
podemos usar campos tipo
objeto ya que stos se
guardan precisamente en el
contenedor.
Estilo privada: activando este check la tabla no estar disponible en el Editor de Personalizaciones de Velzquez Visual.
Info Bytes/ficha: indica cunto espacio (expresado en bytes) ocupar la ficha en disco (todos los campos de una tabla) de un registro. A medida que
vayamos avanzando en este manual observaremos cmo Velzquez Visual
cuida al mximo el tamao.
Info Campos: nmero de campos que tiene la tabla.
Info ndices: nmero de ndices de la tabla.
Directorio: directorio donde va a estar alojada la tabla. Aqu no hemos de especificar un directorio fsico, sino el directorio de la aplicacin (el directorio por
defecto) o un objeto Directorio de tablas creado en el proyecto (directorio lgico que ser resuelto de forma externa al mapa en tiempo de ejecucin).
Comentarios: espacio para escribir cualquier comentario que el programador estime oportuno.
e Ejemplo: creacin de una tabla de tipo maestro normal con clave numrica
Supongamos una aplicacin con la que llevar los datos de nuestros clientes. Necesitamos crear la tabla CLIENTES, para lo cual damos los siguientes pasos:
Esquema de tablas
04
Desarrollo bsico
de una aplicacin
e
En caso de que sea un proyecto ya creado, una vez en el Editor de Esquemas pulsamos el botn
(Nueva tabla maestra) situado a la derecha del
Editor de Esquemas o la combinacin de teclas Ctrl+t.
En la ventana de Propiedades de la tabla maestra, en nombre plural escribimos Clientes y en nombre singular escribimos Cliente. Dejamos el resto
de opciones tal y como estn y pulsamos el botn Aceptar. Observaremos
cmo en el Editor de Esquemas aparece la tabla recin creada.
Se puede desplazar la representacin de la tabla CLIENTES a lo largo del
rea gris del Editor de Esquemas. Para ello hacemos clic sobre ella y sin soltar el botn del ratn la arrastramos al lugar que queramos, o bien utilizando las flechas del teclado (con las flechas la desplazamos de 5 en 5 pxeles
y con la tecla Ctrl y las flechas la desplazamos de 1 en 1 pxel).
Si hacemos doble clic en la tabla CLIENTES y posteriormente doble clic en
la carpeta de Campos o carpeta de Indices, aparecern los campos y los ndices que ha creado Velzquez Visual. Por una parte, dentro de la carpeta
Campos ha creado los campos CODIGO y NOMBRE (si hacemos doble clic
en cualquiera de los dos campos mencionados anteriormente para acceder
a la ventana que contiene sus propiedades, veremos cmo para el campo
CODIGO ha puesto en el apartado Descripcin: Cdigo y en el apartado
Contenido Inicial ha marcado la opcin Siguiente al ltimo. Para el campo
NOMBRE aparece en el apartado Descripcin: Nombre. En la carpeta ndices ha creado los ndices CODIGO, NOMBRE, PALABRAS y TROZOS con
sus respectivas Descripciones. Es decir, ha creado estos elementos con las
propiedades que aparecen por defecto en las propiedades de la tabla.
68 69
VELAZQUEZ VISUAL
Finalmente guardamos el proyecto, llamndolo gestin (por ejemplo), dentro de la carpeta que nosotros queramos.
Situndonos sobre la carpeta Tablas de datos del panel izquierdo del Editor
de Proyectos y seleccionando la opcin de men Archivo / Imprimir (Ctrl-P),
obtendremos un informe que presenta una lista con todas las tablas que
componen el proyecto, incluyendo identificador, nombre plural, nombre singular y tipo.
Tambin podemos imprimir los elementos de una tabla. Para ello, en el
panel izquierdo del Editor seleccionamos la tabla dentro de la carpeta Tablas de datos, y seleccionamos la opcin de men Archivo / Imprimir
(Ctrl-P). Obtendremos los siguientes datos acerca de los elementos de la
tabla:
Campos: muestra el identificador, el nombre, el tipo, los bytes (longitud) y el
rango.
Indices: muestra el identificador, el nombre, el tipo y los bytes.
Actualizaciones: muestra el nombre de la tabla a actualizar, el campo a modificar, el modo en que se va a producir sta (absoluto o acumular) y los comentarios.
Histricos: muestra el identificador de la tabla histrica y el ndice por el que
se realiza el enlace.
04
Desarrollo bsico
de una aplicacin
Campos
Ya sabemos que las tablas guardan informacin de registros, constando cada registro de campos.
Los campos de una tabla se crean pulsando el botn Nuevo campo
, que
aparece en la ventana propiedades de tabla, al hacer doble clic sobre una
tabla del Editor de Esquemas. Tambin se puede acceder a l desde la barra de herramientas del Editor de Proyectos. Otra opcin es utilizar la tecla
Insert.
Velzquez Visual utiliza el identificador y la descripcin para reconocer los
campos.
Velzquez Visual genera un identificador estndar que puede ser modificado por el diseador, asignndole uno relativo al tipo de dato que va a contener. Para evitar prdidas de informacin como resultado de cambiar el
identificador de un campo, Velzquez Visual guarda el identificador antiguo
del campo. De esta forma al ejecutar la aplicacin de nuevo, Velzquez Visual reconstruir la tabla sin perder ningn dato.
Una vez aceptado el identificador, haciendo doble clic sobre el mismo o pulsando la tecla Intro, aparece el cuadro de dilogo Propiedades del campo.
ADVERTENCIA
Nunca hemos de cambiar
los identificadores de los
campos CODIGO y
NOMBRE.
TRUCO
Si inadvertidamente el
diseador cambia dos veces
(consecutivas y sin
reconstruir) el identificador
de un campo, los datos del
campo no aparecern en la
nueva tabla despus de que
Velzquez Visual la
reconstruya. De todos
modos, es posible recuperar
la informacin si el diseador
recuerda el nombre antiguo
del identificador porque
Velzquez Visual puede
guardar una copia de la
tabla vieja renombrada con
la extensin .OLD (es
configurable guardar los .old
o no). De esta forma,
restituyendo el antiguo
identificador, borrando la
tabla de datos nueva y
renombrando la tabla de
datos antigua con la
extensin .DAT, la
informacin estar
recuperada.
ADVERTENCIA
Los identificadores en
Velzquez deben estar
compuestos por letras,
nmeros o guiones, y nunca
por caracteres especiales
como % o $, ya que
stos se usan como
delimitadores.
Nuevo campo
70 71
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
como una constante. En los campos CODIGO slo se permiten tres opciones: Ninguno (para que el valor lo introduzca el usuario); Siguiente al
ltimo (para que el valor lo genere Velzquez Visual) y Contador en variable (para que el valor lo controle el diseador o el usuario).
Caracteres vlidos: esta opcin es exclusiva para campos frmula. Aunque este tipo de campos no tienen una longitud fija, podemos especificar aqu la longitud esperada del mismo si se va a saber de antemano.
Por ejemplo, si en una tabla hemos creado un campo frmula alfabtica
cuya frmula sea extraer un carcter de un campo alfabtico, la longitud
esperada del mismo siempre ser 1. Esto redundar en un mejor rendimiento de la aplicacin al saber de antemano la longitud que se necesitar para el campo frmula.
Frmula: expresin frmula usada para calcular los campos de tipo Frmula Numrica, Alfabtica, Fecha, Tiempo e Histrico.
Tipo: aqu fijamos de qu tipo va a ser el campo. En Velzquez Visual los
tipos de campo existentes son los siguientes:
Alfabtico
Numrico
Alfa 128
Alfa 64
Alfa 40
Fecha
Alfa 128: es un tipo alfanumrico que incluye letras maysculas, minsculas, acentos, signos de puntuacin y nmeros. Su formato es empaquetado: 8 caracteres que el usuario introduce se comprimen en 7 para grabarlos al disco.
Alfa 64: es un tipo alfanumrico que incluye letras maysculas, signos
de puntuacin y nmeros. El formato es empaquetado: cada 4 caracteres que el usuario introduce se comprimen en 3 para grabarlos al disco.
Alfa 40: es un tipo alfanumrico que incluye letras maysculas, nmeros, guin y espacio. El formato es empaquetado: cada 3 caracteres que
el usuario introduce se comprimen en 2 que sern grabados al disco.
Fecha: permite introducir fechas con diversos formatos. El carcter
de separacin puede ser el guin o la barra.
Hora: permite introducir horas en formato HH:MM:SS. Las horas que
se utilizan en este campo son las del da, es decir, de 00:00:00 a
23:59:59.
Tiempo: permite introducir fechas y horas. Es un campo que no se
utiliza demasiado y que probablemente desaparezca.
Hora
Tiempo
72 73
Booleano
Texto
Dibujo
VELAZQUEZ VISUAL
Booleano: es un campo lgico que permite fijar el contenido del mismo como S/NO (1 o 0). Ojo: es 1 o 0, y no 1, -1 como sucede en otros
lenguajes de programacin.
Objeto: campo con contenido variable (no puede ser utilizado como
componente de ndices). Estn disponibles los objetos siguientes:
Texto enriquecido
OLE genrico
E-mail
Frmula numrica
Frmula alfabtica
Texto: su contenido es texto de longitud variable ocupando solamente el tamao del contenido. Normalmente es usado para anotaciones en la ficha de un cliente, artculo, etc.
Dibujo: su contenido es un grfico con cualquier resolucin y nmero de colores que ser importado en tiempo de ejecucin. Normalmente
son usados para ver la imagen de un artculo en su ficha, el logotipo de
un cliente, etc.
Frmula fecha
Frmula tiempo
Frmula histrico
OLE genrico: su contenido ser cualquier objeto OLE. Para cargarlo en tiempo de ejecucin se utilizar el cuadro de dilogo Insertar Objeto estndar de Windows. Una vez incorporado el objeto OLE a Velzquez Visual podr ser lanzado directamente en el programa correspondiente haciendo doble clic sobre l.
E-mail: su contenido ser un mensaje de correo electrnico (e-mail).
Campos frmula: tienen dos caractersticas comunes: no ocupan espacio en disco y no pueden utilizarse en ndices. Son campos que se calculan a partir de una expresin que se genera en el Asistente para edicin de frmulas (que veremos ms adelante).
Frmula numrica: el resultado de las operaciones realizadas con un
campo de este tipo ser un nmero. Si hemos definido un campo de este
tipo, para evitar un error de divisin por 0, dividiremos siempre el dividendo
por el divisor o por 1. As, cuando el divisor es 0 divide el dividendo por 1.
Frmula alfabtica: se utiliza para concatenar campos, variables y/o
constantes. El resultado ser una cadena alfabtica.
Frmula fecha: retorna un valor de tipo fecha. Podemos utilizarla, por
ejemplo, para sumar a una fecha un campo, variable o constante de tipo numrico y obtener la fecha resultante de dicha operacin.
Frmula tiempo: retorna un valor de tipo tiempo. Al igual que los
campos de tipo Tiempo, apenas se utiliza.
Frmula histrico: este tipo de campo recorre todo el histrico y
efecta la frmula por cada registro encontrado para determinar el valor
de la misma.
04
Frmula Dinmica: a pesar de tratarse de un campo frmula, tiene
persistencia en disco. Este tipo de campo ser utilizado cuando la definicin de la frmula deba ser establecida por el usuario en tiempo de
ejecucin. Aclarar que una cosa es la frmula en s y otra el resultado de
ejecutarla; en este tipo de campo se guardar la frmula pero su resultado solamente podr obtenerse a travs de otro campo frmula (numrica, alfabtica o fecha, en funcin del resultado que deba obtenerse) en
cuyas propiedades se establezca como frmula a ejecutar el campo tipo frmula dinmica. Si en un formulario se incluye un control de edicin
para editar este tipo de campo, en tiempo de ejecucin se incrustar en
el mismo un botn que dispara el asistente para la edicin de frmulas,
para facilitar al usuario su composicin.
Hemos de seleccionar la tabla con cuyos campos (y los de sus maestras) construiremos la frmula. Esto lo haremos en el control de edicin
Identificador de la ventana de propiedades del campo.
Las tablas de caracteres que usa Velzquez Visual son distintas a las estndar que estamos habituados (ASCII, ANSI, Windows, etc.) en cuanto a
los caracteres que incluyen. Adems, dependiendo del tipo, al reducir el nmero de caracteres que tiene la tabla podemos guardar, en el mismo nmero de bytes que en el tipo alfabtico, ms caracteres. Esto en terminologa Velzquez Visual se denomina empaquetado. La desventaja frente al tipo Alfabtico es que nos faltarn algunos caracteres como, @ o \, tal y como comentamos antes, pero en muchos casos no es importante, ya que el
carcter (@) slo lo usaremos en campos que almacenen direcciones de correo electrnico y el carcter ( \ ) en campos donde se guarden sendas de
disco.
Desarrollo bsico
de una aplicacin
ADVERTENCIA
No hemos de utilizar un
campo de tipo Frmula
histrico cuando preveamos
que los registros de la tabla
van a tener un gran nmero
de histricos, pues se
ralentizara la presentacin
de datos en pantalla en
tiempo de ejecucin
(imaginemos presentar en
una rejilla, en la que se
incluye en una columna el
campo frmula histrico,
miles de registros de la
tabla. Por cada uno se debe
recorrer sus registros
histricos y efectuar la
frmula correspondiente, lo
que llevar a una
ralentizacin de la
presentacin de los datos
en pantalla). Lo ms
adecuado en estos casos
es crear una actualizacin
desde la tabla histrica a
dicho campo en la tabla
maestra, habiendo definido
el campo como de tipo
numrico.
Cuando se utiliza una
constante en un campo
frmula, como puede ser un
texto, es aconsejable
entrecomillarla. El tipo de
campo frmula a utilizar
depende del resultado
buscado, no de los tipos de
parmetros utilizados en el
clculo.
TRUCO
TABLA DE CARACTERES PARA EL TIPO DE CAMPO ALFA 128
Frmula Dinmica
74 75
VELAZQUEZ VISUAL
Asistentes de campos
Velzquez Visual cuenta con un asistente de campos que nos permite acceder a ciertas funcionalidades muy interesantes. En el men Campos podemos crear campos con enlaces y tambin tenemos las opciones Crear
campos fecha/hora campo objeto y Crear campos dimensiones dibujo. Vemoslas:
Crear campos fecha/hora campo objeto: si seleccionamos un campo de tipo Objeto en el panel izquierdo del Editor y ejecutamos esta opcin, se crearn en la tabla dos campos: uno de tipo fecha y otro de tipo hora que, en
tiempo de ejecucin, se actualizarn automticamente al dar de alta o modificar una ficha. Velzquez Visual se encargar de dar valores a esos campos sin que nosotros tengamos nada ms que hacer.
El identificador de los nuevos campos estar compuesto por el identificador del campo Objeto seguido por las palabras FECHA u HORA.
Crea campos dimensiones dibujo: si seleccionamos un campo de tipo Objeto Dibujo en el panel izquierdo del Editor y ejecutamos esta opcin, se
crearn en la tabla dos campos: uno para almacenar el alto y otro para almacenar el ancho de la imagen. El contenido de estos campos se actualizar automticamente en tiempo de ejecucin cuando se d de alta o modifique el contenido de un Objeto Dibujo de una ficha.
El identificador de cada campo creado ser el identificador del campo al
que hacen referencia seguidos del texto -CX o -CY.
04
Desarrollo bsico
de una aplicacin
Esta opcin es muy til para ganar velocidad en la presentacin de imgenes en pginas web servidas por el Servidor http de Velzquez Visual.
MEN CAMPOS
Si modificamos la estructura de una aplicacin que ya tiene datos y aadimos los campos para guardar las dimensiones del dibujo cuando antes no
los tenamos, al ejecutar la aplicacin, todos los registros que ya existan
antes de la modificacin del proyecto que contuviesen dibujos, tendrn ambos campos a 0. En estos casos tendremos que ejecutar un proceso con la
funcin Refrescar dimensiones dibujo para darles el valor que les corresponda.
Tablas estticas
Son un tipo de tablas diferentes al resto de las vistas hasta ahora ya que
contienen una lista de registros no modificables por el usuario final. Por
ejemplo: una tabla que contiene los das de la semana o los meses del ao.
Una tabla esttica se crea desde el Editor de Proyectos, pulsando el botn
Nuevo objeto
. Aparecer la ventana correspondiente a la Galera de Objetos, que contiene todos los objetos visuales incluidos en Velzquez Visual.
En ella, haciendo doble clic, seleccionamos el objeto Tabla Esttica.
Al hacer doble clic, nos aparecer la ventana de Propiedades de la tabla esttica:
Nuevo objeto
76 77
Aadir
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
Como puede verse, estas tablas se utilizan para un nmero reducido de datos y suelen asociarse en formularios a un control ComboBox o List Box para que el usuario de la aplicacin pueda seleccionar un dato de entre los
que contiene la tabla.
El usuario de la aplicacin nos indica que quiere ver en la ficha del estudiante, adems de los campos que ya hay creados en la tabla, otro en el
78 79
VELAZQUEZ VISUAL
e que pueda seleccionar si el estudiante est parado, est en activo o es autnomo. Para ello vamos a utilizar el enlace a tabla esttica.
Los pasos que realizamos son los siguientes:
Nuevo objeto
Aadir
04
Desarrollo bsico
de una aplicacin
e
eliminar un registro
subir un registro
bajar un registro
visualizar la ventana de propiedades del registro
asignar un pequeo icono
80 81
VELAZQUEZ VISUAL
Plantillas de Campos
Supongamos que en nuestro proyecto vamos a trabajar con varios campos
de idnticas propiedades. Para no establecer sus propiedades uno a uno,
podemos definir una plantilla de campo y usarla para definir todos esos
campos. Tambin son tiles en los casos en los que un mismo tipo de campo se repite en diferentes tablas de datos. En consecuencia: las plantillas
se utilizan para estandarizar los campos de un proyecto.
Para crear una plantilla de campo de una forma rpida debemos seleccionar el campo que queremos utilizar como plantilla, copiarlo, irnos a la carpeta Plantillas de campo y pegarlo. Ya estar creada. Tambin podemos
crearlas directamente en la zona de estructura de datos de la ventana principal del proyecto.
04
Desarrollo bsico
de una aplicacin
PLANTILLAS DE CAMPO
Una vez hayamos creado la plantilla, para crear un campo en una tabla a
partir de sta, slo hemos de aadir un nuevo campo en la tabla que queramos, y dentro de las propiedades del campo, en el apartado Tipo de campo seleccionaremos la plantilla.
ADVERTENCIA
Otro detalle: las plantillas son exclusivas del mapa donde se hayan creado.
82 83
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
PLANTILLA TELFONO
Ahora, si creamos un campo en la tabla CLIENTES (por ejemplo) y abrimos el combo Tipo en las propiedades de dicho campo, encontraremos
el tipo Telfono, que es la descripcin de la Plantilla de campo recin
creada.
84 85
VELAZQUEZ VISUAL
Nuevo ndice
04
Desarrollo bsico
de una aplicacin
ADVERTENCIA
CUADRO PROPIEDADES DEL NDICE
No es aconsejable declarar
un ndice correspondiente a
un campo de tipo alfabtico
(por ejemplo, el campo
Nombre) con clave nica.
De este modo no evitamos
que un mismo registro (un
cliente, por ejemplo) sea
introducido varias veces:
basta que un usuario lo d
de alta como Cliente1, y que
otro lo vuelva a dar de alta
como Cliente1 para que,
aun refirindose al mismo
cliente, ste aparezca como
dos registros distintos.
Aun obviando el problema
anterior, veamos otro detalle:
supongamos un ndice de
clave nica correspondiente
a un campo alfabtico de
longitud 10 caracteres. Si
introducimos el registro
Jos-Ramn Blanco y
posteriormente Jos-Ramn
Prez, el segundo registro
no ser dado de alta ya que
los diez primeros caracteres
de ambos nombres
coinciden, y Velzquez
asume que los dos son
iguales. Como el ndice es
de clave nica slo se
quedar con el primero.
86 87
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
los ndices. Esta conversin no slo ahorra espacio en disco, sino que
proporciona funcionalidades adicionales a las bsquedas. Por ejemplo,
si tenemos un campo de tipo alfabtico, creamos un ndice por ese campo y lo convertimos a Alfa 40, el resultado es que el campo en s contina siendo alfabtico a todos los efectos, pero al buscar por el ndice sern despreciados todos los caracteres que no pertenezcan al tipo convertido. De modo que encontraramos Quijote aunque escribiramos
Quijote o quijote, ya que los caracteres en minsculas se convertiran a maysculas y los acentos se despreciaran por no formar parte del
tipo.
Con los botones Aumentar y Reducir parte, somos capaces de aumentar o reducir el nmero de caracteres que van a componer la clave sobre
la que se va a realizar la bsqueda (ojo, hemos de reducir al nmero de
caracteres tal que aun nos permita distinguir los registros). Esto repercutir en ahorro del espacio en disco y en una mayor velocidad al realizar las bsquedas.
Longitud clave: este dato lo calcula Velzquez Visual y nos dice, en bytes, cunto va a ocupar la clave para cada registro. Ser la suma de la
longitud de cada una de las componentes de la clave, ms cuatro bytes
en el caso de que estemos usando Acepta Repetidas (y que usa para diferenciar registros con la misma clave).
El nmero de ndices que podemos crear para cada tabla es algo mayor de
trescientos, aunque no se recomienda que su nmero crezca mucho por razones de tamao.
TRUCO
88 89
VELAZQUEZ VISUAL
04
Entramos en el editor de proyectos y creamos un nuevo mapa, pulsando el
botn
Nuevo proyecto. A continuacin pasamos a la ventana de
Esquema de Tablas pulsando el correspondiente botn. Ya que el proyecto no
tiene tablas, nos aparece la ventana del asistente de creacin de tablas en
la que optaremos por crear una tabla de tipo maestro normal con clave numrica.
A continuacin nos aparece la ventana de propiedades Creacin de maestro, en la que cumplimentaremos los campos Nombre Plural y Singular con
lo que queramos, por ejemplo, Fotografas y Fotografa, respectivamente
(veremos cmo al pasar el foco al control de Singular nos copia lo que hemos escrito para que lo editemos).
Desarrollo bsico
de una aplicacin
e
Nuevo proyecto
Esquema de Tablas
90 91
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
Si la comparamos con una tabla que hayamos creado con todas las opciones por defecto, veremos cmo nos faltan tres ndices, pero adems, si entramos en los campos e ndices creados, veremos que stos no tienen cumplimentado el campo descripcin.
92 93
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
Completamos las descripciones y cambiamos el contenido inicial por Siguiente al ltimo. En el caso del campo NOMBRE, nos interesa cambiar su
descripcin por Ttulo ya que los registros sern fotografas, pero mantenemos el identificador NOMBRE para no perder ninguna funcionalidad de Velzquez Visual.
Ahora pasamos a los ndices. Si entramos en el ndice que se ha creado automticamente, veremos que tambin falta el Nombre, que cumplimentaremos. En el caso de las tablas maestras, adems de ser de Clave nica (es
decir, no puede haber dos registros con el mismo cdigo) y no poder cambiar eso, lo normal es que no tenga ms componente que el cdigo.
Si hubiramos aceptado las opciones por defecto al crear una tabla de datos maestra, nos habra aadido tres ndices ms que son: NOMBRE, PALABRAS y TROZOS. Vamos a crearlos.
Los tres ndices parten del campo NOMBRE como componente. Por tanto,
pulsando el botn
Nuevo ndice del campo, despus de haber seleccionado el campo NOMBRE, Velzquez crea un ndice que tiene como Nombre: Ttulo. As es el ndice NOMBRE que nos crea por defecto Velzquez
Visual, diferencindose nicamente con el que acabamos de crear en que
su descripcin (nombre) es Nombre, mientras que la del ndice recin creado es Ttulo.
94 95
VELAZQUEZ VISUAL
04
Pulsamos F2 para cambiar el identificador y escribimos PALABRAS. En general usaremos este identificador para el ndice por palabras de un campo nombre. Ahora lo editaremos pulsando Intro o haciendo doble clic con el ratn.
INDICE PALABRAS
Desarrollo bsico
de una aplicacin
e
96 97
VELAZQUEZ VISUAL
INDICE TROZOS
Con esto ya hemos creado todos los objetos que por defecto se generan
con una tabla de datos maestra.
Cuestiones
1. Crear una tabla esttica con los das de la semana.
2. Crear una tabla de tipo maestro normal con clave numrica. A continuacin crear en ella un campo de tipo numrico.
3. En las propiedades del campo creado en la cuestin anterior experimentar con la longitud y el nmero de decimales: Qu ocurre? Experimentar tambin con el rango del campo.
4. Crear un campo enlazado a la tabla esttica creada en la primera
cuestin.
5. Crear una plantilla para campos de tipo fecha. A continuacin crear
otro campo usando la plantilla.
6. Ver los ndices que Velzquez Visual gener por defecto al crear la tabla de la segunda cuestin. Crear un ndice asociado a alguno de los
campos que aadimos nosotros.
04
Desarrollo bsico
de una aplicacin
Supongamos que tenemos dos tablas: MARCAS, con los datos correspondientes a una determinada marca de automviles, y MODELOS, cuyos registros se refieren a datos del modelo de coche. Vamos a establecer un enlace de este tipo entre ambas.
Para realizar un enlace a tabla de datos maestra nos ayudamos de dos frases: una que contenga un singular y un plural y otra en la que haya dos singulares. Para este caso la frase singular-plural sera: Una Marca tiene muchos Modelos (de ahora en adelante diremos que MODELOS es un histrico de MARCAS), mientras que la frase singular-singular es: Un Modelo
pertenece a una sola Marca.
Los enlaces vienen representados grficamente mediante flechas, siendo
para este tipo de enlace una flecha de color rojo la que va de singular a plural, mientras que es azul la que va de singular a singular.
Esto ya nos indica cmo son las flechas: de MARCAS a MODELOS la frase
es UNO-MUCHOS, luego en esa direccin ir una flecha roja, que es el enlace plural, tambin llamado enlace a histrico, y de la misma manera, de la
tabla MODELOS a MARCAS la frase es UNO-UNO, luego en esa otra direccin ir una flecha azul, que es el enlace singular o a maestro.
Ahora bien: Cmo creamos este enlace?
Dentro del Editor de Esquemas nos situamos en la tabla correspondiente al
singular, en este caso es MARCAS.
Situamos el cursor sobre el enlazador
(cuadro gris que est en la parte
superior-izquierda de la tabla). El cursor del ratn tomar la forma de una
mano. Hacemos clic sobre l (aparecer una flecha de color rojo) y sin soltarlo nos desplazamos hasta la tabla MODELOS. De esta manera tendremos creado el enlace.
enlazador
98 99
VELAZQUEZ VISUAL
Dicho ndice es del tipo Acepta repetidas e indexa por el campo MARCAS.
De esta manera Velzquez Visual puede conocer desde un Modelo concreto a qu Marca pertenece.
04
Desarrollo bsico
de una aplicacin
Si nos vamos a la ventana de Propiedades de la tabla MODELOS y hacemos doble clic sobre la carpeta Histricos, veremos cmo ha creado un histrico llamado MODELOS. Haciendo doble clic sobre dicho histrico veremos la ventana de Propiedades del histrico.
Podemos ver cmo dicho histrico enlaza la tabla MARCAS con MODELOS
a travs del ndice MARCAS que ha creado Velzquez Visual.
En resumen, el enlace plural (color rojo) nos genera un histrico de la tabla,
y el enlace singular (color azul) nos genera un campo enlazado a la tabla superior (o maestra) y un ndice por ese campo.
Velzquez cuenta con un asistente para la creacin de enlaces singular plural. Dicho asistente aparece cuando, en la ventana esquema de tablas
del editor, pulsamos el botn
crear punteros con histrico. Para que dicho botn est activo hemos de tener seleccionada una tabla del proyecto,
que ser la que trabaje como maestra. Al pulsar el botn aparece la ventana del asistente en la que hemos de elegir la tabla del proyecto que har las
veces de histrico.
100 101
VELAZQUEZ VISUAL
Para eliminar un enlace hemos de borrar todos los elementos que se han
generado al establecerlo: el campo enlazado y el ndice en el histrico, as
como el enlace a histrico del maestro.
Ms adelante veremos que existe un tipo particular de tabla denominado tabla histrica. Lo comentamos en este punto ya que es importante para
comprender lo siguiente: el enlace MARCAS-MODELOS lo hemos creado
entre dos tablas maestras, y sin embargo, a efectos de enlace, decimos que
la tabla MODELOS es histrica de la de MARCAS (aunque MODELOS es de
tipo maestro y no de tipo histrico). Con ello queremos decir que una tabla
de tipo maestro puede ser histrica de otra (a pesar de no ser de tipo histrico) debido al modo en el que hemos establecido el enlace.
El diseo del esquema de tablas es lo ms importante a la hora de desarrollar un proyecto en Velzquez Visual ya que un buen diseo de esquema
garantiza una buena aplicacin. El resto, que son los objetos visuales y que
iremos viendo paulatinamente, tienen en general una menor importancia.
04
Desarrollo bsico
de una aplicacin
e
El usuario final nos dice que, en la aplicacin, quiere ver los cursos que vayan realizando los centros de formacin, y que un curso determinado pueden darlo dos profesores como mximo. Asimismo, un alumno slo puede
estar matriculado en un curso.
Como el usuario desea registrar los cursos que va impartiendo el centro formador hemos de crear una nueva tabla, que llamaremos CURSOS y que
deberemos enlazar con ESTUDIANTES. Para ello vamos a seguir los siguientes pasos:
Pulsamos el botn Esquema de tablas
de la barra de herramientas (o
bien a travs de la barra de mens, seleccionando la opcin Ventana >
Esquema de tablas) para acceder al rea Esquema de tablas del Editor
de Proyectos. Visualizaremos la tabla ESTUDIANTES que ya existe en el
proyecto.
A continuacin, para crear la tabla CURSOS, pulsamos el botn Nueva
tabla maestra
(o tambin dentro de la barra de mens, seleccionando la opcin Tablas > Crear nueva tabla de tipo > Maestro, o la combinacin de teclas Ctrl+t). Velzquez Visual muestra la ventana Creacin
de Maestro en la cual escribimos como nombre plural: Cursos y como
nombre singular: Curso.
Esquema de tablas
Nueva tabla maestra
102 103
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
Velzquez Visual, adems de dibujar las lneas, crea en cada tabla una
serie de elementos. Si hacemos doble clic sobre la tabla CURSOS accederemos a la ventana Tabla: CURSOS que contiene los elementos que
componen dicha tabla. Dentro de la carpeta Histricos Velzquez Visual
crea el histrico ESTUDIANTES, enlazado a la tabla ESTUDIANTES a travs del ndice CURSOS. Es lo que representa la lnea de color rojo.
Si hacemos doble clic sobre la tabla ESTUDIANTES accederemos a la
ventana Tabla: ESTUDIANTES que contiene los elementos que componen dicha tabla. Velzquez Visual ha creado dentro de la carpeta Campos el campo CURSOS, enlazado a tabla de datos maestra, y dentro de
la carpeta ndices, el ndice CURSOS, de tipo Acepta repetidas e indexado por el campo CURSOS. Toda esta estructura es la que representa
la lnea de color azul.
Por otra parte, el usuario nos ha dicho que un curso puede ser impartido
por dos profesores. Para solucionar este tema utilizamos el denominado
ndice de mltiples claves. Seguimos los pasos que a continuacin se detallan:
Creamos una nueva tabla maestra: PROFESORES utilizando el mismo
procedimiento que seguimos para crear la tabla CURSOS.
Mediante una frase que relacione la tabla PROFESORES con la tabla
CURSOS, deducimos Los cursos del profesor y El profesor del curso. Por lo tanto, PROFESORES es maestra de CURSOS.
104 105
VELAZQUEZ VISUAL
quez Visual ha creado, como en el caso anterior, el campo PROFESORES enlazado a la tabla de datos maestra PROFESORES. Seleccionamos el identificador del campo PROFESORES y pulsamos la tecla F2
para sustituirlo por PROFESOR-1.
Como mximo cada curso va a ser impartido por dos profesores, de modo que crearemos otro campo con identificador PROFESOR-2, tambin
enlazado a la tabla de datos maestra PROFESORES.
De esta manera tendremos los datos de los dos profesores que pueden
realizar el curso. Ahora, para crear un nuevo ndice, seleccionamos la
carpeta ndices y pulsamos el botn Insert del teclado. Una vez creado
entraremos en su correspondiente ventana de propiedades para seleccionar como tipo de ndice Mltiples claves.
04
Desarrollo bsico
de una aplicacin
e
Adicionalmente, indicamos en la propiedad nmero de claves 2, y seleccionamos como campos para indexar PROFESOR-1 y PROFESOR-2. De
esta manera, cuando se utilice el ndice para (por ejemplo) buscar los
cursos impartidos por un determinado profesor, aparecern los cursos
que haya impartido independientemente de estar en el campo PROFESOR-1 o en el campo PROFESOR-2.
En la tabla HABITANTES incluimos los campos PRIMER APELLIDO, SEGUNDO APELLIDO, LUGAR DE NACIMIENTO, DOMICILIO, FECHANAC
(fecha de nacimiento), etc.
106 107
VELAZQUEZ VISUAL
e Por haber establecido el enlace singular-plural entre las dos tablas, Velzquez ha creado un histrico en POBLACIONES que usa el ndice Poblaciones de la tabla HABITANTES. Dicho ndice tambin ha sido creado al establecer el enlace y es de tipo Acepta repetidas, de modo que nos permite repetir la poblacin en distintos registros de HABITANTES.
Ahora bien, podemos crear otros histricos desde POBLACIONES contra
HABITANTES que usen distintos ndices de la tabla HABITANTES.
Por ejemplo: creamos un ndice que llamaremos FECHANAC (Fecha nacimiento), en el que incluiremos el campo enlazado a la tabla maestra (Poblaciones) y el campo FECHANAC (Fecha nacimiento). Tenemos que incluir
Poblaciones para decirle a Velzquez cmo realizar el enlace a maestro. Al
ndice Fecha nacimiento lo declaramos de tipo Acepta repetidas (por la misma razn de antes: as varios habitantes podrn tener igual fecha de nacimiento e igual poblacin).
NDICE FECHANAC
El siguiente paso es crear el histrico, de modo que en POBLACIONES declaramos un histrico contra la tabla HABITANTES mediante el ndice FECHANAC.
04
Desarrollo bsico
de una aplicacin
e
De este modo el histrico recin creado nos dar los habitantes de una ciudad pero ordenados por fecha de nacimiento.
Cuestiones
1. Enlazar correctamente las tablas LIBROS y AUTORES. Qu campos, ndices e histricos crea automticamente Velzquez en ellas al
enlazarlas?
2. En el caso de las tablas COMUNIDADES y PASES, cul es el maestro y cul el histrico?
3. Intenta resolver con un ndice de mltiples claves el caso en el que
un libro est escrito por ms de un autor.
4. Enunciar correctamente las frases que nos ayudan a establecer el enlace entre las tablas siguientes: JUGADORES y EQUIPOS, CLASES y
ALUMNOS, ALMACENES y ARTCULOS, TIENDAS y DEPENDIENTES, FACTURAS y CLIENTES, ALBARANES y LNEAS DE ALBARN.
Resumen
Una vez analizado el problema, organizamos la informacin en Tablas, que
relacionaremos por medio de enlaces de tal manera que aporten informacin para resolver el problema. Cuanto mejor est el diseo de tablas y enlaces, ms potente resultar la aplicacin.
Las tablas organizan la informacin en fichas o registros, estando cada registro compuesto por campos.
108 109
VELAZQUEZ VISUAL
La principal propiedad de las tablas de tipo maestro normal con clave numrica es la de tener un campo que identifica de forma inequvoca a sus registros adems de un ndice con clave nica e irrepetible (cdigo).
Los campos pueden enlazarse a las tablas estticas, las cuales guardan registros que no pueden ser modificados en ejecucin.
Mediante las plantillas de campo podemos predeterminar las propiedades
de ciertos campos de uso frecuente en un mapa.
Gracias a los ndices podremos establecer relaciones entre las tablas y realizar bsquedas en la base de datos.
El enlace ms comn es el que se establece entre un maestro (AUTORES)
y sus histricos (LIBROS).
Para saber quin es el maestro y quin es el histrico nos ayudamos de dos
frases. Una que contenga un plural y un singular (las comunidades del
pas), y otra con dos singulares (el pas de la comunidad).
Una tabla se puede definir como tipo histrico. Otra cosa distinta es que
una tabla sea histrica de otra por cmo establecemos el enlace entre ambas (LIBROS, aun siendo de tipo maestro, es histrica de AUTORES).
4.4
Objetos visuales
GALERA DE OBJETOS
04
Desarrollo bsico
de una aplicacin
Nuevo objeto
Seleccionar
Salir
Aumentar tamao de iconos
Para crear una carpeta nos situaremos en el rea derecha del Editor de
Proyectos (rea de objetos) y haremos clic con el botn derecho del ratn,
de modo que nos aparecer un men contextual en el que seleccionamos
la opcin Nueva carpeta. Tambin podemos acceder a esta opcin desde
la barra de Herramientas del Editor de Proyectos. Velzquez nos presentar la ventana Carpeta de Objetos (sta no aparece en el rea de variables
globales. Aqu creamos la carpeta directamente y no se puede cambiar su
diseo):
TRUCO
Para crear un objeto
seleccionamos una tabla y
abrimos entonces la Galera
de Objetos. El objeto que
creemos quedar
automticamente asociado a
la tabla seleccionada en un
principio. Esto sirve para
todos los objetos que deban
estar asociados a una tabla,
incluidos los procesos, que
tendrn como origen sta.
110 111
VELAZQUEZ VISUAL
Para crear una carpeta hija, basta con seleccionar el men contextual anterior que apareca con el botn derecho del ratn y elegir la opcin Nueva
carpeta hija, o bien desde la barra de herramientas del Editor de Proyectos.
04
Desarrollo bsico
de una aplicacin
PROPIEDADES DE LA REJILLA
Una vez seleccionadas las propiedades, pulsamos el botn Aceptar, apareciendo una representacin visual de la rejilla en el rea de objetos.
Las propiedades de la rejilla son las siguientes:
Tabla datos: tabla de origen de la rejilla.
Nombre: descripcin que va a tener la rejilla.
Fuentes: en este apartado aparecen las fuentes por defecto que se hayan
designado en el proyecto. Incorpora una serie de botones para poder aadir, sustituir, suprimir, subir o bajar fuentes.
Privada: identifica la rejilla como privada de modo que el usuario final no
pueda utilizarla para sus propios fines. Si es privada slo podr usarse
donde determine el programador. Si es pblica el usuario podr usarla desde cualquier lista de esa misma tabla mediante la opcin Cambiar aspecto rejilla.
Nuevo objeto
112 113
VELAZQUEZ VISUAL
TRUCO
Para diferenciar fcilmente
las filas pares de las impares
podemos darles un color de
fondo distinto.
Si queremos visualizar una
rejilla con una nica fila que
ocupe todo el alto de la
ventana donde se vaya a
visualizar, le damos a la fila
un alto superior al alto
mximo que va a tener la
ventana. En tiempo de
ejecucin, se reducir
automticamente hasta
ocupar, slo una fila, todo el
alto de la ventana. Por
ejemplo, podemos utilizar
una rejilla para visualizar un
nico registro en un men.
ADVERTENCIA
La opcin Doble clic implica
que no se va a presentar el
formulario de modificacin al
hacer doble clic. En este
caso, para obtenerlo habr
que abrir el men de
contexto que se presenta al
pulsar el botn derecho del
ratn.
04
Desarrollo bsico
de una aplicacin
Cambio seleccin simple: permite disparar un proceso cada vez que se seleccione, en ejecucin, un registro en la rejilla (esta opcin es til para la
sincronizacin de controles en mens de tipo formulario).
Inicio edicin en lnea: permite disparar un proceso al comienzo de la edicin de una lnea. Slo se disparar cuando editemos la lnea, no por cada
celda que editemos en la misma. Estar inactiva si no se ha activado previamente la opcin Editable.
Fin edicin en lnea: permite disparar un proceso al finalizar la edicin de
una lnea. Slo se disparar cuando se haya finalizado la edicin de la lnea,
no cada vez que finalice la edicin de una celda de la misma. Tambin estar inactiva si no se ha activado previamente la opcin Editable.
Marcado multiseleccin: permite ejecutar un proceso cuando el usuario
marque un registro para seleccin. Esta opcin estar inactiva si no se ha
activado previamente la opcin Multiseleccin. No hemos de utilizar estos
eventos para lanzar procesos que no sean de control.
Desmarcado multiseleccin: permite disparar un proceso cuando el usuario
desmarque un registro de la seleccin. Permanecer inactiva si no se ha activado previamente la opcin Multiseleccin. Tampoco hemos de utilizar estos eventos para lanzar procesos que no sean de control. Si al ejecutar una
aplicacin en una rejilla con multiseleccin se ejecuta la opcin de marcar
o desmarcar todos los registros de la lista, los eventos de marcado / desmarcado multiseleccin no sern ejecutados.
Asistente
114 115
VELAZQUEZ VISUAL
Expandir rama
Cuestiones
1. Cada ficha que aparece en una rejilla, se dispone en las filas o en
las columnas? Y los campos de cada ficha?
2. En el editor de proyectos, abrir un nuevo proyecto y crear la tabla
MONTAAS (maestro normal con clave numrica). En ella aadimos
los campos Altura, Localizacin, Primer ascensionista, N de xitos e
ndice de peligrosidad. Crear una rejilla asociada a la tabla, de modo
que podamos seleccionar ms de una montaa a la vez. La rejilla slo debe presentar los campos Nombre y Altura.
3. Crear otra rejilla asociada a la tabla MONTAAS, pero en este caso
que presente todos los campos de la tabla MONTAAS y con la posibilidad de modificar sus registros en tiempo de ejecucin (Nota:
cuando aceptemos, se presentar la ventana de edicin de rejillas,
que vamos a ver a continuacin. De todos modos ya sabemos lo suficiente para practicar con las cuestiones propuestas).
04
Desarrollo bsico
de una aplicacin
Propiedades ob-
Asistente
Propiedades objeto
Procesos
Nueva columna
Vuelve a funcin Modificar
Propiedades de columna
Insertar columna
Duplicar columna
Eliminar columna
Mover columna a la izquierda
Mover columna a la derecha
Aumentar ancho
Reducir ancho
116 117
VELAZQUEZ VISUAL
Para cambiar las propiedades de una columna comprobamos que est pulsado el botn
Propiedades columna y hacemos clic con el botn izquierdo del ratn sobre su cabecera. Al pulsar, aparece el cuadro de dilogo Propiedades de columna de rejilla con sus tres secciones separadas:
Cabecera, Cuerpo y Pie (esta ltima opcional). Cada seccin tiene sus propiedades particulares, vemoslas:
Propiedades de cabecera:
PROPIEDADES DE CABECERA
Ttulo: es el texto para la cabecera de la columna. Es una cadena de formato. Para partir una lnea en dos, pulsaremos la combinacin de teclas Ctrl
+ Intro.
Alineamiento del texto: seleccionamos aqu el tipo de alineamiento que deseamos. Si la casilla de verificacin Multilneas est seleccionada, el ttulo
se repartir en varias lneas si no entra completo en una sola.
04
Fuente: aqu elegimos la fuente que vamos a usar en la cabecera de entre
las seleccionadas en las propiedades de la rejilla.
Color texto: esta opcin nos permite cambiar el color del texto de la cabecera.
Propiedades del cuerpo:
Desarrollo bsico
de una aplicacin
118 119
VELAZQUEZ VISUAL
04
Separador de miles: si el campo es numrico podemos activar esta opcin
para que se muestren los separadores de miles.
Condicin visible: si se activa esta opcin podremos condicionar, mediante
una condicin frmula, que la columna sea mostrada en tiempo de ejecucin.
Propiedades Edicin: slo necesitaremos establecer estas propiedades si la
rejilla y la columna estn marcadas como editables.
PROPIEDADES DE EDICIN
Condicin activo: a travs del asistente para la edicin de frmulas podremos establecer una condicin que debe cumplirse para que el campo de la
columna pueda ser editado.
Autocompletar: slo vlido para columnas de edicin de un campo NOMBRE de una tabla de datos maestra. De este modo, si el usuario escribe en
la celda una cadena, el programa presentar automticamente el primer registro de la tabla maestra cuyo campo nombre comience por dicha cadena.
La parte aadida quedar seleccionada, con lo que, si el usuario prosigue
la escritura, la parte seleccionada ser sustituida por los nuevos caracteres
que el usuario escriba.
Desarrollo bsico
de una aplicacin
120 121
VELAZQUEZ VISUAL
04
Propiedades de pie:
PROPIEDADES DE PIE
Desarrollo bsico
de una aplicacin
122 123
VELAZQUEZ VISUAL
04
Cuestiones
1. Abramos el editor de proyectos y creemos un proyecto nuevo. En
l volvemos a crear la tabla MONTAAS (maestro normal con clave
numrica), a la que aadimos los campos Altura, Localizacin, Primer ascensionista y N de xitos. Crear una rejilla asociada a la tabla en la que se presenten los campos Nombre y Altura, en la que
se puedan modificar los registros en tiempo de ejecucin.
2. En la cabecera del campo Nombre debe aparecer Nombre nativo,
mientras que en la cabecera del campo Altura debe leerse Altura
(en metros). Adems, es necesario que el fondo de las filas correspondientes a picos de ms de 7.000 metros aparezcan en rojo.
3. Aadir el campo N de xitos a la rejilla anterior. Queremos que en
el pie de esta columna, aparezca la suma acumulada de ascensiones a las montaas de la tabla.
Desarrollo bsico
de una aplicacin
124 125
VELAZQUEZ VISUAL
El ancho de una columna se ajusta, mediante el ratn, como indica la figura Ancho columna. Si el nmero de columnas supera el ancho de la pantalla, aparecer una barra de desplazamiento para visualizar al completo la rejilla. Asimismo, podemos redimensionar el ancho de una columna en funcin del tamao del texto de la cabecera, para ello podemos o bien seleccionar la opcin del men Columna/Ancho del Ttulo, o pulsar el botn
Ancho del Ttulo y seleccionar la columna a redimensionar. Tambin podemos redimensionar una columna en funcin del contenido, es decir, en funcin del tamao del campo. Para ello seleccionamos la opcin de men Columna / Ancho del contenido o pulsamos el botn
ancho del contenido
y seleccionamos la columna a redimensionar.
ANCHO COLUMNA
El alto de la cabecera se ajusta, mediante el ratn, como indica la figura Alto Cabecera. Otra forma de ajustar el alto de cabecera al tamao de la fuente es realizar un doble clic sobre la lnea de la propia cabecera.
ALTO CABECERA
El alto de una lnea se ajusta, mediante el ratn, como indica la figura Alto
Lnea. Si el nmero de lneas supera el alto de la pantalla, aparecer una barra de desplazamiento para visualizar al completo la rejilla. Otra forma de
ajustar el alto de lnea al tamao de la fuente es hacer doble clic sobre la
propia lnea.
ALTO LNEA
04
Desarrollo bsico
de una aplicacin
A travs de la opcin de men Columna / Cambiar en todas del Editor, podemos cambiar, o bien el color del texto de todas las cabeceras mediante
la opcin Color Texto Cabecera, o bien el color del texto de todas las lneas
con la opcin Color Texto Lneas.
Ejemplo: Creacin de una rejilla
Estamos realizando una pequea agenda de tareas para organizar nuestros
trabajos. Hasta ahora hemos creado una tabla, llamada TAREAS, que guardar todos los trabajos que llevemos a cabo.
126 127
VELAZQUEZ VISUAL
Nueva carpeta
Nuevo objeto
Nuevo objeto del tipo seleccionado
04
Si pulsamos directamente el botn Aceptar, Velzquez Visual crea el objeto rejilla Tareas dentro de la carpeta Tareas.
Desarrollo bsico
de una aplicacin
e
Al hacer doble clic sobre el objeto rejilla TAREAS aparece automticamente la ventana Asistente de creacin de rejilla.
Al hacer doble clic sobre uno de los campos de la tabla (los que aparecen en el rea Campos seleccionables) ste ir pasando al rea de
la derecha (Campos seleccionados). Como en este caso queremos
que en la rejilla aparezcan todos los campos de la tabla, pulsamos directamente el botn Crear con todos los campos. Velzquez Visual
nos mostrar directamente la rejilla creada en modo edicin, para que
realicemos las modificaciones que consideremos oportunas.
128 129
VELAZQUEZ VISUAL
04
cha ventana marcamos, para crear el pie, el check Activo y como altura
indicamos16.
Al hacer clic sobre la cabecera de la columna del campo Cdigo, abrir la
ventana Propiedades de columna de rejilla y seleccionar la pestaa Pie,
Velzquez Visual mostrar las propiedades del pie. En la propiedad Contenido seleccionamos el tipo Frmula absoluta.
Al pulsar el botn Asistente, aparece la ventana Asistente para edicin
de frmulas.
En dicha ventana, pulsamos el botn Variables de sistema (o pulsamos
la tecla F8 del teclado) y seleccionamos en la ventana Lista de variables:
SISTEMA la letra n (Nmero de elementos de la lista).
Al pulsar el botn Aceptar del Asistente para edicin de frmulas aparece
la letra n en las propiedades del pie de la ventana Propiedades de Columna de Rejilla. Obtendremos este mismo resultado seleccionando Frmula
acumulable en la propiedad Contenido e indicando como frmula: 1.
Ahora hacemos doble clic sobre la cabecera del campo Descripcin tarea,
abrimos la ventana de Propiedades de la columna, seleccionamos la pes-
Desarrollo bsico
de una aplicacin
e
130 131
VELAZQUEZ VISUAL
taa Pie y elegimos esta vez como contenido el tipo Texto. A continuacin
situamos el cursor sobre el rea de color blanco y escribimos Tareas.
Al pulsar el botn Aceptar la rejilla mostrar en el pie un 0 (correspondiente a la letra n e indicando que ese pie devolver un resultado numrico) y el texto Tareas.
04
Desarrollo bsico
de una aplicacin
e
Una vez definidas las propiedades de la rejilla (incluidos los formularios que
utilizaremos para modificar, dar de alta y dar de baja los registros), pasaremos a crearla utilizando el asistente de creacin de rejillas.
132 133
VELAZQUEZ VISUAL
04
Una de las propiedades ms utilizadas en las rejillas es la de ancho de columna variable (>>). Gracias a ella, el ancho de la columna se ajustar al tamao del contenido. En la ltima fila de las columnas de ancho variable
aparecer el smbolo >>.
Desarrollo bsico
de una aplicacin
e
Resumen
La rejilla es un objeto que se utiliza en Velzquez Visual para ver un listado
de registros de una tabla. Las filas hacen referencia a los registros de la tabla, mientras que cada columna de la fila guarda un campo. Las columnas
estn compuestas por cabecera, cuerpo y pie.
En el cuerpo de cada columna se puede presentar el contenido de un campo o una cadena de formato. Los campos pueden ser de la tabla de datos
en curso o de cualquiera de sus maestros o maestros de stos, hacia arriba y en orden jerrquico.
Es posible definir la rejilla para que los registros visualizados en ella puedan
ser modificados directamente, sin tener que utilizar formularios; asimismo,
tambin es posible la seleccin mltiple de registros (multiseleccin), de es-
Coloreado rpido
134 135
VELAZQUEZ VISUAL
ta forma podremos, por ejemplo, ejecutar procesos slo contra los registros
que estn seleccionados en la rejilla. Tambin podremos dar de alta y de
baja registros de la tabla.
El pie es opcional y en l se pueden presentar textos estticos, sumas acumuladas de las columnas numricas o frmulas.
Mediante las rejillas presentamos en pantalla el resultado de las bsquedas.
Tambin se utilizan las rejillas en los formularios para ver histricos de stos. Por ejemplo, podemos pegar en un formulario de Cliente una rejilla con
sus facturas.
Al crear el objeto rejilla visor de tablas aparece la ventana propiedades de la
rejilla, en la que definimos la tabla de datos asociada, el nombre de la rejilla, sus estilos, los formularios asociados, etc.
Posteriormente aparece la ventana Asistente de creacin de rejillas, donde
definimos los campos de la tabla que van a incluirse, as como el aspecto
de la cabecera, cuerpo y pie.
Al editar la rejilla podemos cambiar las propiedades de la cabecera, el cuerpo y el pie. Tambin contamos con una barra de herramientas para modificar sus dimensiones, asociar procesos, cambiar sus propiedades, llamar al
asistente, etc.
FORMULARIO
04
Un Formulario de Modificacin efecta un bloqueo blando sobre el registro
editado para su comparticin con otros usuarios. Este tipo de bloqueo permite que otros usuarios lean y modifiquen la ficha. Al cerrar el formulario
pulsando el botn Aceptar y habiendo realizado cambios, Velzquez Visual
verifica si otros usuarios han modificado el registro desde que se abri el
formulario.
En caso afirmativo, hace una comprobacin en el mbito de campos. Si no
ha habido colisin de campos (mismo campo modificado a la vez), se funden nuestros cambios con los realizados por otros usuarios. Si hay colisin
de campos, se asumen los cambios del usuario que haya aceptado primero y se advierte al otro u otros usuarios que han modificado la misma ficha
que va a perder sus modificaciones.
Los formularios pueden llamarse desde:
Rejillas: en el cuadro propiedades de la rejilla se pueden asociar los tres formularios para altas, bajas y modificaciones, de modo que desde la rejilla, y
en tiempo de ejecucin, se puede llamar a estos formularios mediante las
siguientes opciones:
Formulario Altas: pulsando la tecla + (teclado numrico), haciendo doble
clic con el ratn sobre una lnea sin datos de la rejilla, pulsando la tecla Insert o mediante el men contextual.
Formulario Bajas: seleccionado el registro en la rejilla y pulsando la tecla Suprimir o con el men contextual.
Formulario Modificaciones: pulsando la tecla Espacio una vez seleccionado
el registro en la rejilla, haciendo doble clic con el ratn sobre una lnea de la
rejilla (si sta no tiene asociado evento de doble clic) o mediante el men
contextual.
Mens: las opciones de un men pueden disparar objetos con distintas pistolas. Con la pistola Formulario Alta se disparan formularios para dar altas
de nuevos registros. Con la pistola Bsqueda Formulario se disparan bsquedas que presentan su resultado en una rejilla, si encuentran varios registros, y en un formulario, si slo encuentra uno.
Procesos: a travs de las funciones Modificar ficha seleccionada con formulario, Pedir formulario y formulario de alta de maestro.
Desarrollo bsico
de una aplicacin
136 137
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
138 139
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
Las opciones del cuadro de dilogo son las que se muestran a continuacin:
Aadir: pulsamos este botn para aadir una nueva fuente al formulario.
Sustituir: pulsamos este botn para sustituir alguna de las fuentes del
formulario por otra diferente.
Eliminar: esta opcin sirve para eliminar una fuente del formulario. Si dicha fuente est siendo utilizada por algn control del formulario no podr
ser eliminada.
Eliminar sin uso: elimina todas las fuentes del formulario que no estn
siendo utilizadas en ningn control.
Aadir
Sustituir
Eliminar
Eliminar sin uso
Subir y bajar
Modo de edicin
Caja de grupo
Cuestiones
1. Tenemos un proyecto que incluye una tabla llamada PASES. Asociar un
formulario a dicha tabla, llamndolo pases, de tal modo que aparezca
en cuadro de dilogo y en el que se use la fuente Arial 10 negrita.
140 141
Separador esttico
VELAZQUEZ VISUAL
Anuncio
Dibujo esttico
Texto esttico
Anuncio: este control presenta un texto animado. En tiempo de ejecucin el texto ir desplazndose de izquierda a derecha en el control. Disponemos del Asistente para la edicin de frmulas para la especificacin de la
frmula de la cadena de texto a presentar.
Nombre campo
Campo
Dibujo esttico: control que sirve para insertar un dibujo en el formulario. En sus propiedades generales hemos de seleccionar uno de los dibujos
incluidos en el proyecto. Hemos de pulsar F7 para redimensionar el control
al tamao real del dibujo.
Texto esttico: con l podremos incluir textos dentro de un formulario.
Un texto esttico puede tener un acelerador del tipo [ Alt ] + [Tecla], para
ello, hay que incluir antes del carcter que se desee utilizar como acelerador el smbolo &. Por ejemplo: No&mbre. En tiempo de ejecucin se destacar la tecla aceleradora con un subrayado (Nombre). Al pulsar el usuario la
tecla Alt + la tecla aceleradora (m), el foco se situar en el siguiente control
en el orden de tabulacin al del texto esttico.
Nombre campo: sirve para visualizar el nombre de un campo de la tabla. Si se modifica el nombre del campo de la tabla de datos asociada al
formulario, este control cambia automticamente el texto para visualizar el
nuevo. En sus parmetros generales aparece Lista de campos, de modo
que en la lista de campos que se muestra podemos seleccionar el nombre
del campo a visualizar.
Campo: permite editar el contenido de un campo de la ficha en curso,
de una variable global o manual, para crear una cadena de formato. Una vez
situado el control sobre el formulario, haremos clic con el botn izquierdo
del ratn sobre l para indicar si vamos a editar un campo, una variable o
manual. Si es un campo numrico, permite usar Separador de miles. Este
control no sirve para editar campos de tipo Objeto (objeto texto, objeto dibujo, etc.). Sus propiedades son:
Campo: activamos esta opcin si queremos editar un campo de la tabla
asociada al formulario o enlazadas. A continuacin seleccionamos de entre
la lista de campos que se presenta el que queramos editar.
Variable: activamos esta opcin si queremos editar una variable global. A
continuacin seleccionamos de entre la lista de variables globales que se
presente la que queramos editar.
Manual: se utiliza para la creacin de cadenas de formato. Si pulsamos el
botn Asistente, podremos acceder al Asistente para la edicin de cadenas
de formato. Una vez activado aparecer una pequea pantalla de edicin
con el nombre del campo seleccionado entre dos smbolos %, o el de la variable entre dos smbolos $. Podremos crear una cadena de formato para,
por ejemplo, formatear la forma de presentacin del campo editado.
04
Desarrollo bsico
de una aplicacin
Si el contenido es manual, el control ser convertido en control de solo lectura, excepto si se trata de un control que aplique una mscara de entrada
a un dato de tipo fecha.
Texto Tool Tip: permite especificar un texto que ser mostrado en ejecucin
cuando el usuario pase con el puntero del ratn sobre el control.
Si el campo seleccionado es de tipo frmula dinmica, en tiempo de ejecucin se incrustar en el control un botn que dispara el asistente para la edicin de frmulas, para facilitar al usuario su composicin.
Microscroll (botones arriba y abajo): permite incluir en un formulario unos
botones arriba y abajo para modificar el contenido del campo asociado. Sus
parmetros generales son:
Microscroll
Calendario
TRUCO
La edicin de variables entre
lmites es muy til para
poder almacenar los rangos
de fecha de bsquedas
entre lmites, para poder ser
utilizados con posterioridad
en procesos, informes, etc.
142 143
Fecha/Hora
Botn con texto
VELAZQUEZ VISUAL
Fecha/Hora: edita en un mismo control una fecha, una hora o ambas cosas a la vez. Tanto para la fecha como para la hora podemos optar entre los
siguientes contenidos: Campo, variable o no usar (este ltimo si no va ser
editado el tipo de dato que corresponda). El formato de salida de la informacin depender de la mscara de entrada que se le aplique. Para ello accedemos a la pestaa Estilos y activamos el check Mscara.
Por ejemplo, si editamos dos campos, uno de tipo fecha y otro de tipo hora, y aplicamos la mscara: dd-MM-yy hh:mm, el dato se visualizar como
01-01-01 12:35. Una vez el foco est en el control de edicin, con las teclas
de movimiento del cursor izquierda / derecha podremos ir seleccionando el
da, el mes, el ao, etc., y con las teclas de movimiento del cursor arriba /
abajo, incrementar o decrementar su valor.
Botn con texto: botn en el que se visualiza un texto y que permite
disparar en tiempo de ejecucin funciones ofrecidas por Velzquez Visual.
Cuando dispara las funciones Aceptar y Cancelar grabacin de ficha podemos asociar un proceso que se ejecute antes de disparar la funcin y
otro que se ejecute despus. La diferencia entre estos procesos radica en
que el primero se ejecutara antes de escribir en disco y el segundo se ejecutara despus. En eventos anteriores a la pulsacin de un botn no se interpretan retornos (Funciones de procesos Aadir retorno e Imprimir informe). Estos eventos anteriores son ejecutados cada vez que desde el
formulario se grabe la ficha (no al pulsar el botn fsicamente). Los posteriores s son ejecutados despus de pulsar el botn. Operaciones que ocasionen que desde el formulario se grabe la ficha son: Pulsacin de un botn que ejecute un proceso y tenga activada la propiedad Refresca cambio en ficha, Obtener un formulario de una rejilla de histrico (implica que
04
se d de alta el maestro) o grabacin de un registro histrico en una rejilla
editable.
Sus propiedades generales son:
Texto contenido: texto que se visualizar en el botn.
Tool Tip: texto que se mostrar en tiempo de ejecucin cuando el usuario
pase sobre el control con el puntero del ratn.
Se puede asignar una tecla o una combinacin de teclas a un botn. Para
ello, en la pestaa Comando, seleccionamos la tecla deseada en la lista de
teclas y, si se quiere, activamos la opcin Shift pulsado o la opcin Control
pulsado para establecer combinaciones de teclas aceleradoras. Los botones con texto tambin admiten aceleradores del tipo Alt+Tecla, para ello escribimos antes de la letra que se va a utilizar como acelerador el smbolo &.
Dicha letra aparecer destacada con un carcter de subrayado.
La funcin a disparar por el botn se especifica en la pestaa Comando,
presentando cada funcin sus parmetros especficos. Las funciones previstas son las siguientes:
Cancelar: cancela el formulario y todos los cambios realizados. Si el formulario tiene una condicin de activo y sta no se cumple, el botn que
dispare esta funcin estar activo para que el usuario pueda cerrar la ficha. Admite asociar procesos anterior y posterior a la ejecucin de la
funcin.
Desarrollo bsico
de una aplicacin
144 145
ADVERTENCIA
Cuando utilicemos la funcin
ELIMINAR o ELIMINAR
CONTROLADO para borrar
un registro que tiene
registros histricos, en
ejecucin, el programa
avisar de ello y no nos
dejar borrarlo. Para ello
tendremos que ir borrando
uno a uno todos los
histricos de dicho registro
maestro.
TRUCO
Para eliminar un maestro
con histricos se podra
crear un proceso anterior a
una baja de ficha que
cargue todos los histricos
del maestro y los elimine. En
dicho proceso conviene
mostrar un mensaje
advirtiendo al usuario que
perder toda la informacin
de otras tablas relacionadas
con el registro de la tabla
maestra que se pretende
eliminar.
ADVERTENCIA
En un subformulario llamado
mediante esta funcin desde
un formulario de altas de
maestro, nunca debemos
incluir una rejilla de histrico
en la que se permita dar alta
de fichas, ya que no es
posible inducir en las altas
de los registros histricos el
maestro, por lo que, en altas
simultneas en red, se
puede producir una
incorrecta asignacin de
maestros a dichas lneas.
VELAZQUEZ VISUAL
04
taje de descuento que se puede aplicar. En la tabla FACTURAS, el campo
Descuento no tiene ningn contenido inicial, pero se incluyen tres botones,
uno para atrapar el descuento 1 del cliente, otro para el descuento 2 y otro
para el descuento 3. Estos tres botones dispararn la funcin Atrapar
contenido campos. As, en los tres el campo de destino ser el campo
DESCUENTO de la tabla de Facturas, y el campo de origen ser %CLIENTES.DESCUENTO1% para el primer botn, %CLIENTES.DESCUENTO2%
para el segundo, y %CLIENTES.DESCUENTO3% para el tercero. Las propiedades de cada captura se introducen en el cuadro de lista Campos.
Ejecutar proceso ficha actual: ejecuta el proceso de ficha dado en la lista
desplegable Procesos. Los datos de origen del proceso sern los de la ficha actual.
Localizar maestro por sus histricos: permite localizar un maestro por medio de los datos de sus histricos. El maestro ser uno de los enlazados a
la tabla de datos en curso, y su histrico ser el seleccionado en la lista
desplegable correspondiente. El botn Resolver se utiliza para establecer el
ndice de bsqueda del histrico y la resolucin de las partes de las que se
compone. En tiempo de ejecucin, al atrapar en el localizador un elemento
de la rejilla, el registro es capturado en la ficha de origen, con lo que el campo enlazado se hace apuntar al registro seleccionado.
Localizar submaestro: presenta en el localizador seleccionado los registros
de una tabla maestra (que a su vez sea submaestra), histricos de un campo padre seleccionado. Por ejemplo: si en un formulario de la tabla POBLACIONES, histrica de PROVINCIAS, que a su vez es submaestra de
PASES, seleccionamos un pas, este comando presentar el localizador
con las provincias del pas seleccionado. Si lo atrapamos, el registro ser
capturado en la ficha de origen, con lo que el campo enlazado apuntar al
registro seleccionado.
Localizar maestro arbolado: presenta el localizador de la tabla arbolada en
forma de rbol. Si atrapamos un registro, ste ser capturado en la ficha de
origen, con lo que el campo enlazado apuntar al registro seleccionado.
Ejecutar proceso Rejilla: Lista completa: ejecuta un proceso sobre todos los
registros de la rejilla cuando se pulsa el botn. El proceso a ejecutar es el seleccionado en la lista desplegable Procesos. En la lista desplegable Controles rejilla histrico elegimos la rejilla que se tomar como origen del proceso.
Ejecutar proceso Rejilla: Contra los seleccionados: para rejillas con multiseleccin. Ejecuta un proceso sobre todos los registros seleccionados de la
rejilla cuando se pulsa el botn. El proceso a ejecutar es el seleccionado en
la lista desplegable Procesos. En la lista desplegable Controles rejilla histrico elegimos la rejilla de donde se tomarn los registros. Si queremos que
tras la ejecucin del proceso se desmarquen los registros activamos la opcin Desmarcar multiseleccin tras proceso. Si deseamos que tras la ejecucin del proceso se quiten de la lista los registros seleccionados activamos la opcin Quitar los seleccionados tras proceso. sta los quita de la lista, pero no los borra del disco, a no ser, claro est, que en el proceso eje-
Desarrollo bsico
de una aplicacin
146 147
VELAZQUEZ VISUAL
TRUCO
Si en un formulario
queremos incluir un botn
que guarde cambios pero
que no cierre la ficha, le
asignamos la funcin
Ejecutar proceso ficha actual
y no seleccionamos proceso
alguno, o seleccionamos
uno que no haga nada.
Activamos la propiedad
Refresca cambios en ficha y
ya tenemos el efecto
deseado.
04
Desarrollo bsico
de una aplicacin
Sincronizar edicin de dibujos: puesto que se debe especificar un objeto dibujo para cada estado del botn, para que nos resulte ms cmoda su especificacin disponemos de la sincronizacin de los cuatro controles de edicin para cada estado, es decir, si el foco est sobre el control correspondiente al primer estado (Normal), cada vez que seleccionemos el nombre del
objeto dibujo, en los tres controles siguientes se mostrarn automticamente los tres objetos dibujos siguientes en orden alfabtico del seleccionado.
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase el puntero del ratn sobre el control.
Normal: dibujo del botn en estado normal.
Pulsado: dibujo del botn cuando est pulsado.
Con el foco: dibujo del botn cuando est con el foco.
Inactivo: dibujo del botn cuando est inactivo.
Acelerador: se puede asignar una tecla o una combinacin de teclas a un
botn. Para ello seleccionamos la tecla deseada en la lista de teclas y, si se
quiere, activamos la opcin Shift pulsado o la opcin Control pulsado para
establecer combinaciones de teclas aceleradoras.
Botn men: este control permite agrupar varios botones (tanto de texto como con dibujo) en uno solo. En tiempo de ejecucin, al pulsar el botn
se desplegar un men, cada opcin del mismo se corresponder con cada uno de los botones agrupados en l. Condicin indispensable para agrupar varios botones en un control de este tipo es que tanto ste como los
TRUCO
Asignar el mismo
identificador a los cuatro
dibujos, con nmeros
correlativos. Por ejemplo:
para el botn de alta de
ficha de maestro hemos
creado los dibujos AFICHA1,
AFICHA2, AFICHA3 y
AFICHA4. Si sobre el control
correspondiente al estado
Normal seleccionamos el
dibujo AFICHA1
automticamente se
asignar el dibujo AFICHA2
al estado Pulsado, AFICHA3
al estado Con el foco y
AFICHA4 al estado Inactivo.
148 149
VELAZQUEZ VISUAL
Url: este control permite disparar la url que se especifique en uno de sus
parmetros. Sus parmetros generales son:
RadioButton
04
Desarrollo bsico
de una aplicacin
Check Box
Rama de rbol
150 151
VELAZQUEZ VISUAL
Campo/Variable: en este combo seleccionamos el campo o la variable global que asignaremos al control.
Puede activarse la opcin de que al hacer doble clic sobre alguno de los datos mostrados en ella acepte y cierre el formulario, para ello en la pestaa
Estilos activamos la opcin Doble clic acepta.
Si en la carpeta Aspecto activamos el flag Con imgenes se visualizar, junto a cada elemento de la tabla, el dibujo multi-iconos asociado a esa tabla
esttica.
Combo Box
Rejilla histrico
Campo: seleccionamos esta opcin para asociar un campo al control. Debe ser un campo enlazado a una tabla de datos esttica.
Variable: seleccionamos esta opcin para asociar una variable global al
control.
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase el puntero del ratn sobre el control.
Campo/Variable: en este combo seleccionamos el campo o la variable global que deseamos asignar al control.
Puede activarse la opcin de que al hacer doble clic sobre alguno de los datos mostrados en ella acepte y cierre el formulario, para ello en la pestaa
Estilos activamos la opcin Doble clic acepta. En este tipo de controles, un
solo clic acepta y cierra el combo.
Si en la carpeta Aspecto activamos el flag Con imgenes, se visualizar junto a cada elemento de la tabla, el dibujo correspondiente que se haya definido en la creacin de la tabla esttica.
Rejilla histrico: visualiza, en la rejilla seleccionada por el diseador, uno
de los histricos de la tabla de datos asociada al formulario. Como en cualquier otra rejilla, es posible realizar altas, bajas y modificaciones, pero al estar dentro de un formulario abierto, las operaciones realizadas en la tabla
histrica afectan a la tabla maestra. Sus propiedades generales son:
Histrico encarpetado: activamos esta opcin si en vez de visualizar una rejilla del histrico de un maestro, queremos visualizar un objeto encarpetado
de histrico que hayamos incluido en el proyecto.
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase el puntero del ratn sobre el control.
Histrico / Carpetas: enlace a histrico de la tabla del formulario que se desea
incluir en el mismo. Si hemos activado la opcin Histrico encarpetado tendremos que seleccionar el objeto encarpetado de histrico que deseemos.
04
Desarrollo bsico
de una aplicacin
Rejilla: rejilla que queremos utilizar para visualizar los registros histricos.
Slo podremos elegir entre las rejillas asociadas a la tabla de datos histrica de la del formulario.
Si en un formulario de altas incluimos una rejilla de histrico, se fuerza el alta del formulario y se pasa a trabajar en modo de modificacin cuando sacamos un formulario de la rejilla (alta o modificacin) en el caso de que la
rejilla sea no editable o al finalizar la edicin de una lnea cuando sta es
editable. El hecho de haber provocado el alta tiene varias implicaciones:
Si el usuario decide borrar las lneas de la rejilla y cancelar el formulario, el
registro no desaparece, sino que permanece dado de alta aunque no tenga
registros histricos.
Si se han declarado procesos asociados a los eventos de altas y modificaciones de registros de la tabla, al dar el alta al primer registro del histrico
se dispararn los procesos asociados al alta. A partir de ese momento el
formulario pasa a trabajar en modo de modificacin, por lo que al aceptar
el formulario se dispararn los procesos asociados a modificaciones.
Podemos asociar un proceso cuando un control de rejilla de histrico gane o
pierda el foco (esto puede hacerse con todos los controles editables). Bastar con marcar el flag correspondiente y seleccionar, de la lista de los procesos con origen de lista de la tabla actual, el proceso que deseemos ejecutar.
Si en la carpeta Ms estilos activamos la casilla de verificacin Invertir lista,
en tiempo de ejecucin, se visualizarn los registros de la misma en orden
inverso. Esto es muy til, por ejemplo, para visualizar una lista de facturas
de un cliente, pues en primer lugar tendremos la ltima que se haya dado
de alta.
Rejilla subhistrico: este control permite incluir en un formulario una rejilla de un histrico de un histrico de la tabla asociada al formulario. Por
ejemplo, en un proyecto con las tablas CLIENTES (maestro), FACTURAS
(histrico de Clientes) y LNEAS DE FACTURAS (histrico de Facturas), podemos incluir en un formulario de Clientes una rejilla con las lneas de facturas. Sus parmetros generales son:
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase el puntero del ratn sobre el control.
Histrico: tabla histrica de la tabla asociada al formulario.
Histrico 2: tabla de datos histrica de la seleccionada en el parmetro anterior.
Rejilla: rejilla de la tabla de datos especificada en el parmetro anterior que
deseamos utilizar.
Si en la carpeta Ms estilos activamos la casilla de verificacin Invertir lista,
en tiempo de ejecucin se visualizarn los registros de la misma en orden
Rejilla subhistrico
152 153
VELAZQUEZ VISUAL
inverso. No existe sincronizacin entre las rejillas de subhistrico con las rejillas de histrico.
Rejilla alimentada por proceso
Casillero alimentado por proceso
rbol alimentado por proceso
Rejilla alimentada por proceso: este control permite incluir en un formulario una rejilla de cualquier tabla de datos del proyecto, sea o no histrica
de la tabla de datos asociada al formulario. Como su propio nombre indica,
esta rejilla est alimentada por un proceso, es decir, habr que crear un proceso para realizar la bsqueda de los registros que se han de presentar en
ella. Sus parmetros generales son:
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase el puntero del ratn sobre el control.
Procesos: para determinar los registros que se van a incluir en una rejilla
siempre es necesario ejecutar un proceso que termine con una funcin Aadir retorno en una lnea cuyo origen sea una LISTA de la tabla de datos de
la rejilla. El proceso a ejecutar debe tener su origen en una FICHA de la tabla de datos del formulario.
Tablas: seleccione la tabla de datos a la que est asociado el retorno del proceso.
Rejillas: tendr que seleccionar cualquiera de las rejillas asociadas a la tabla especificada en el parmetro anterior.
Casillero alimentado por proceso: este control permite incluir en un formulario un casillero de cualquier tabla de datos del proyecto. Sus parmetros generales son:
Proceso: para determinar los registros que se van a incluir en un casillero
siempre es necesario ejecutar un proceso que termine con una funcin Aadir retorno en una lnea cuyo origen sea una LISTA de la tabla de datos del
CASILLERO. El proceso a ejecutar debe tener su origen en una FICHA de la
tabla de datos del formulario.
Tabla: identificador de la tabla de datos del casillero.
Casillero: identificador del casillero.
rbol alimentado por proceso: este control permite incluir en un formulario un rbol visor de una tabla arbolada del proyecto. Sus parmetros generales son:
Proceso: para determinar los registros que se van a incluir en el rbol siempre es necesario ejecutar un proceso que termine con una funcin Aadir
retorno en una lnea cuyo origen sea una LISTA de la tabla de datos arbolada. El proceso a ejecutar debe tener su origen en una FICHA de la tabla de
datos asociada al formulario.
Tabla: identificador de la tabla de datos arbolada.
rbol: identificador de un rbol visor de tabla arbolada.
04
Indicador de nivel: visualiza grficamente, en una barra de nivel, el valor
numrico de un campo o de una variable en tantos por ciento. El campo o
variable que vayamos a editar en este control debe tener especificados sus
rangos mximo y mnimo en sus propiedades (en las del campo o la variable). Sus propiedades generales son:
Campo: seleccionamos esta opcin para asociar un campo al control.
Variable: opcin para asociar una variable global al control.
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase el puntero del ratn sobre el control.
Campo/Variable: en este combo seleccionamos el campo o la variable global que deseamos asignar al control.
Deslizador: permite alterar el valor numrico de un campo o de una variable global mediante el botn de control del deslizador. Sus propiedades
generales son:
Campo: seleccionamos esta opcin para asociar un campo al control.
Variable: opcin para asociar una variable global al control.
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase el puntero del ratn sobre el control.
Campo/Variable: en este combo seleccionamos el campo o la variable global que deseamos asignar al control.
Separador de subformularios: permite visualizar varios formularios en el
mismo rea. A travs de la barra de botones del cuadro de propiedades podremos hacer lo siguiente (por orden de izquierda a derecha):
Nuevo: al pulsar el botn se abrir una ventana con todos los formularios disponibles (los que hayan sido seleccionados previamente ya no aparecern).
Eliminar: permite quitar de la lista de subformularios el seleccionado.
Arriba: permite desplazar una posicin hacia arriba el subformulario seleccionado en la lista de subformularios.
Abajo: permite desplazar una posicin hacia abajo el subformulario seleccionado en la lista de subformularios.
En el formulario, los subformularios se mostrarn en el orden que hayamos
establecido en las propiedades del separador. El resto de sus propiedades
son:
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase el puntero del ratn sobre el control.
Desarrollo bsico
de una aplicacin
Indicador de nivel
Deslizador
Separador de subformularios
154 155
Desplazar separadores
VELAZQUEZ VISUAL
Grfico
04
Desarrollo bsico
de una aplicacin
Objeto texto
Objeto dibujo
156 157
VELAZQUEZ VISUAL
Objeto texto Enriquecido: edita el contenido de un campo de tipo Objeto texto Enriquecido de la ficha en curso. En ejecucin permite cambiar tipos de letra, atributos, ajustes de lnea de prrafo, etc. Sus parmetros generales son:
04
Desarrollo bsico
de una aplicacin
Campo: identificador del campo tipo objeto e-mail que va a ser editado. Para seleccionar el campo o modificarlo pulsamos el botn Cambiar, y de la
lista de campos e-mail que aparece seleccionamos el que corresponda. La
confeccin de los correos electrnicos deber hacerse a travs de procesos, no pudiendo realizarse edicin directa sobre este control. Por ejemplo,
para la creacin del cuerpo del mensaje podemos utilizar un control de tipo
objeto texto para luego pasar su contenido, desde un proceso, al cuerpo
del campo de tipo e-mail.
Pelcula: permite incluir un fichero AVI de audio y vdeo en un formulario. Es un control esttico. Sus propiedades generales son:
Pelcula
Animacin
158 159
VELAZQUEZ VISUAL
Teclas aceleradoras
Veamos a continuacin los aceleradores de teclado para los controles.
Aceleradores del tipo Alt+Tecla: se trata de una combinacin de la tecla Alt
+ una letra, mediante la cual se accede a un lugar determinado. En ejecucin, se sabe cundo hay un acelerador de teclado si aparece un control
con un texto descriptivo con una letra subrayada. Pulsando la tecla Alt + letra, el cursor se pone sobre el control. Los aceleradores de teclado pueden
incluirse en los siguientes controles:
Botn con texto: en el cuadro de propiedades escribiremos, en la especificacin Texto, el smbolo & delante de la letra que deseemos utilizar como
acelerador.
Botn de radio: procederemos igual que para el botn con texto.
Check box (casilla de verificacin): igual que para los dos anteriores.
Separador: para incluir un acelerador en un separador tendremos que escribir en el dato Nombre del cuadro propiedades de cada formulario que se
vaya a incluir en l, el smbolo & delante de la letra que se desee utilizar como acelerador. Por ejemplo, si vamos a disparar un subformulario que con-
04
tiene un control de tipo Calendario a travs de un botn de un formulario, y
a ste le hemos escrito el texto &Calendario, en ejecucin, el usuario al pulsar Alt+C har que se dispare dicho subformulario.
Botn men.
Caja de grupo.
Separador esttico.
Texto esttico.
En los ltimos tres controles el foco ir al siguiente control seleccionable
con tabulador en el orden TAB.
Tecla aceleradora: de uso exclusivo para botones con texto y dibujo. Permiten asociar una tecla o una combinacin de las teclas Shift o Ctrl + otra
tecla al control. La tecla aceleradora puede ser cualquiera, incluidas las teclas de funcin.
Desarrollo bsico
de una aplicacin
160 161
VELAZQUEZ VISUAL
Estilos: propiedades para definir la forma en que van a actuar los controles.
No todas las propiedades son vlidas para todos los controles; dependiendo del control seleccionado unas estarn activadas y otras no.
04
cin para escribir la mscara, para su especificacin podemos utilizar los
smbolos del siguiente cuadro.
# -> Admite un nmero del 0 al 9.
A -> Admite un nmero del 0 al 9 y letras (maysculas y minsculas) de la
a a la z.
& -> Admite cualquier carcter Ascii.
? -> Admite letras (maysculas y minsculas) de la a a la z.
U -> Admite letras maysculas de la A a la Z.
L -> Admite letras minsculas de la a a la z.
\ -> Carcter de escape.
Por ejemplo: definiendo la mscara: (# # #)-##-##, el dato que vamos a teclear es: 985356460, mientras que el dato visible es: (985)-35-64-60.
Cuando se trate de un campo fecha, para una correcta interpretacin de la
misma, es necesario indicar a Velzquez en qu formato se ha de interpretar, para ello adems de la mscara de entrada, en las propiedades del control de edicin se ha de activar la propiedad Manual y escribir la cadena de
formato que se corresponda con la mscara especificada.
Por ejemplo:
Mscara de entrada -> ##/##/##
Subcadena de formato -> %FECHA#&e/&n/&z%
e -> Da del mes (01-31)
n -> Nmero del mes (01-12)
z -> Ao del mes (00-99)
Para la creacin de la subcadena de formato podemos utilizar el asistente
para la creacin de subcadenas de formato que se activa al seleccionar un
campo a travs del asistente.
Capturar Intro: para controles de tipo botn y rejilla de histrico. Activada
esta propiedad har que al situar el foco sobre un botn y pulsar Intro se
dispare la funcin asociada a dicho botn, y sobre una rejilla de histrico
forzar el disparo del formulario de modificaciones del registro seleccionado en la rejilla.
Auto aceptar: si activamos esta propiedad a un control, en tiempo de ejecucin, cuando ste pierda el foco se aceptar directamente el formulario.
Desarrollo bsico
de una aplicacin
162 163
VELAZQUEZ VISUAL
Slo se ejecutar cuando el usuario final haya pulsado el Tabulador o la tecla Intro con el foco en dicho control; siempre y cuando Intro haya sido definido como Avanza Control en las propiedades del formulario.
Auto Tab: para hacer que en ejecucin, al rellenar la totalidad de la longitud de un campo, el foco pase automticamente al siguiente control en el
orden de tabulacin, debemos activar esta opcin. Si la activamos aparecer debajo la opcin N caracteres, en ella se ha de especificar el nmero de caracteres de longitud del campo para que se ejecute la auto-tabulacin.
Por ejemplo, en un campo que tenga una longitud de 3 caracteres, se le
asigna esta propiedad en el control del formulario y se establece 3 como el
nmero de caracteres. En tiempo de ejecucin, cuando el usuario haya escrito el tercer carcter, el cursor pasar automticamente al siguiente control. Si se asigna esta propiedad a un botn, en tiempo de ejecucin, una
vez pulsado el botn, pasar el foco al siguiente control en el orden de tabulacin.
Borde 3D: si al control le hemos activado el Borde, podremos seleccionar
cualquiera de los siguientes efectos de tres dimensiones: A nivel, Hundido
o Elevado.
Tamao: esta propiedad nos da la posibilidad de que el tamao de los controles se adapte al tamao de la ventana y a la resolucin del monitor en
tiempo de ejecucin. Puede ser: Fijo (no cambiar su tamao), Ancho variable (que en ejecucin slo vare el ancho del control), Alto variable (slo
se adaptar a lo alto de la ventana), Ambos variables (se adaptar el control
tanto al alto como al ancho de la ventana). El cambio de tamao funcionar hasta que se llegue al tamao mnimo del formulario (el tamao que se
especifica en las propiedades del mismo), es decir, que si se reduce la ventana a un tamao menor que el del formulario, el contenido de ste se ver
truncado.
Autocentrado horizontal: para el auto-planchado. Si el control tiene activada esta propiedad har que en tiempo de ejecucin, si el formulario est
en modo vista, el control se muestre en la posicin horizontal relativa a su
posicin en el formulario en edicin. Por ejemplo: si situamos centrados en
la parte inferior del formulario los botones Aceptar y Cancelar y les activamos esta propiedad, en tiempo de ejecucin, si el formulario no est en modo cuadro de dilogo, stos se mostrarn centrados dentro de la ventana
que contiene al formulario.
Autocentrado vertical: igual que la opcin anterior, pero los controles con
esta propiedad activa se mantendrn centrados verticalmente con respecto al tamao de la ventana que contenga el formulario.
Aspecto: en esta pestaa se encuentran las propiedades para definir la forma en que se van a mostrar los controles. No todas las propiedades son vlidas para todos los controles, dependiendo del control seleccionado unas
estarn activadas y otras no.
04
Fuente: abriendo el combo box aparecern todas las fuentes que hayamos
creado en el formulario. Seleccionamos la que deseemos utilizar para visualizar el control.
Color de Texto: aqu seleccionamos el color que deseamos utilizar para presentar el texto contenido en el control.
Color de fondo: seleccionamos el color a utilizar para presentar como color
de fondo del control. Para que se visualice el color de fondo especificado,
el control ha de tener activada la propiedad Borde de la pestaa Estilos.
Color Fondo con foco: esta opcin nos permite especificar un color de fondo opcional para un control, que se activar cuando en tiempo de ejecucin
dicho control gane el foco.
Alineamiento horizontal: en esta opcin seleccionamos la forma en que deseamos que se presente el contenido del control con respecto a los mrgenes izquierdo y derecho del mismo. Puede ser Izquierda (el contenido del
control aparecer pegado al margen izquierdo del mismo), Centrado (el contenido del control aparecer centrado entre los mrgenes izquierdo y derecho del mismo) o Derecha (el contenido del control aparecer pegado al
margen derecho del mismo).
Alineamiento Vertical: esta opcin permite seleccionar la forma en que deseamos que se presente el contenido del control con respecto a los mrgenes superior e inferior del mismo. Hay dos tipos de alineamiento: arriba (el
contenido del control se presentar cerca del margen superior del mismo) y
abajo (el contenido del control se presentar cerca del margen superior del
mismo).
Multilnea: activaremos esta opcin si queremos que el texto contenido en
un control se muestre en varias lneas. Hemos de tener en cuenta que al
control hemos de darle el alto suficiente para que quepan el nmero de lneas que desee. Un control multilneas deber tener un alineamiento horizontal a la Izquierda y un alineamiento vertical Superior.
Desarrollo bsico
de una aplicacin
164 165
VELAZQUEZ VISUAL
En el caso de controles de tipo objeto texto u objeto enriquecido, si el control no es lo suficientemente alto como para presentar su contenido, se
crearn barras de scroll.
Separador de miles: para controles de edicin de campos numricos. Activaremos esta opcin si deseamos mostrar el contenido de un campo numrico con separador de miles.
Calculadora: para controles de edicin de campos de tipo numrico. En
tiempo de ejecucin se visualizar un botn incrustado en el control de
edicin. Para lanzar la calculadora basta con hacer clic sobre dicho botn o con el foco en el control de edicin, pulsando la tecla F4. Al lanzar
la calculadora se visualizar el contenido del campo numrico desde el
que se lanza. El resultado de las operaciones realizadas con la calculadora se movern al control de edicin si se pulsa Intro. Podremos utilizar,
o bien el ratn, o bien el teclado numrico para la realizacin de las operaciones.
Men desplegable y Alinear botn derecha: estas opciones se utilizan para agrupar controles de edicin, botones y para agrupar botones en un botn men. Volveremos ms adelante sobre ello dentro de este mismo captulo.
Texto a la izquierda: para controles de tipo Check box y Botones de radio.
Por defecto, en ambos controles, se presenta la casilla de verificacin o el
botn de radio a la izquierda del texto descriptivo de los mismos. Si deseamos que el texto aparezca a la izquierda del check box o del botn de radio activaremos esta opcin.
Con imgenes: para Combo Box y List Box. Si activamos esta opcin, en
ejecucin se visualizar junto a cada elemento de la tabla, el dibujo correspondiente que se haya definido en la creacin de la tabla esttica con la que
est enlazado el campo.
Pestaa Ms estilos: en este cuadro de dilogo encontramos propiedades
variadas, vemoslas:
04
Desarrollo bsico
de una aplicacin
TRUCO
En modificacin, si
queremos guardar la ficha
actual pero que sta
permanezca en pantalla,
actuaremos del siguiente
modo: si el formulario es a
pantalla completa aadimos
un botn (por ejemplo, con
el texto Guardar) que
dispare la funcin Aceptar
sin cerrar formulario. Si el
formulario es en modo
cuadro de dilogo,
aadiremos un botn con la
funcin Ejecutar proceso
ficha actual, sin asociar
proceso alguno o
indicndole que dispare un
proceso creado
anteriormente y que no haga
nada. Tambin marcaremos
la casilla Refrescar cambios
ficha de la pestaa Estilos.
Si estamos dando altas, un
botn con la funcin Aceptar
sin cerrar formulario har
que ste permanezca en
pantalla, pudiendo dar de
alta la ficha siguiente.
166 167
VELAZQUEZ VISUAL
datos maestra. Para incrustar un botn en un control de edicin ambos deben estar seguidos en el orden de tabulador y tener activada la propiedad
Men desplegable (en la pestaa Aspecto).
La subindexacin especial: utilizada cuando se desee realizar una bsqueda ms selectiva de un registro maestro que a su vez sea submaestro de
otra tabla.
Invertir lista: slo para controles tipo rejilla de histrico, rejilla de subhistrico y rejilla alimentada por proceso. Activada esta opcin, en tiempo de ejecucin se visualizarn los registros de las rejillas en orden inverso. Muy til,
por ejemplo, para visualizar una lista de facturas de un cliente, pues en primer lugar tendr la ltima que se ha dado de alta.
04
Desarrollo bsico
de una aplicacin
e
En el formulario de edicin de fichas de POBLACIONES, situamos los controles de edicin correspondientes al CDIGO y al NOMBRE de los campos PAS y PROVINCIA, todos con botones arriba y abajo.
Editamos el cuadro de las propiedades del campo NOMBRE de la provincia y seleccionamos el campo Provincia ->Nombre.
Activamos la casilla de verificacin de Subindexacin especial de enlace y
hacemos clic sobre el botn Editar subindexacin. Si deseamos no utilizar
la subindexacin especial de enlace podremos desactivar la casilla, para
que sta quede anulada.
Se abrir una ventana en la que se nos pedir la resolucin del puntero o
localizador. En el parmetro correspondiente al ndice seleccionamos COMPUESTO. Veremos cmo inmediatamente, en la ventana que se encuentra
debajo (Campos a resolver), el programa pide que resolvamos el campo
PAS. En la ventana de la parte superior derecha se especificar que se resuelva dicho campo desde el origen actual (que ser Poblacin). Seleccionamos la descripcin de la tabla PAS, pues al hacerlo el programa entender que se trata del cdigo del pas. Tan solo queda aceptar y ejecutar el
proyecto.
168 169
VELAZQUEZ VISUAL
Brocha
Brocha de propiedades
04
Condicin visible: activando esta casilla de verificacin, a todos los controles sobre los que pase la brocha se les asignar esta propiedad.
Borde 3D: si activamos esta casilla de verificacin, a todos los controles sobre los que pase la brocha se les asignar esta propiedad. Podr seleccionar entre A nivel, Hundido, Elevado y No aplicar.
Tamao: si activamos esta casilla de verificacin, a todos los controles
sobre los que pase la brocha se les asignar esta propiedad. El tamao
podr ser: No aplicar, Fijo, Ancho variable, Alto variable o Ambos variables.
Autocentrado horizontal: activando esta casilla de verificacin, a todos
los controles sobre los que pase la brocha se les asignar esta propiedad.
Autocentrado vertical: activando esta casilla de verificacin, a todos los
controles sobre los que pase la brocha se les asignar esta propiedad.
Una vez establecidas las propiedades, podremos ir asignndolas a los controles que deseemos llevando el puntero del ratn sobre cada control y haciendo clic con el botn izquierdo. Para desactivar la brocha pulsamos su
botn o hacemos clic con el botn izquierdo del ratn en alguna zona donde no se encuentre ningn control.
Si deseamos asignar las propiedades de un control existente en el formulario a otros controles, activamos la brocha y pulsamos la techa Ctrl + el botn izquierdo del ratn sobre el control que va a tomar como modelo. Para
aplicar estas propiedades a otros controles se proceder como se ha explicado en el prrafo anterior.
Seleccionar controles
La seleccin de un control se realiza al pulsarlo en modo edicin.
Para hacer una mltiple seleccin de controles hemos de retener la tecla
Shift y seguidamente pulsar sobre los controles a seleccionar. Tambin con
el ratn: pinchar, arrastrar y soltar.
Desarrollo bsico
de una aplicacin
170 171
VELAZQUEZ VISUAL
Si la seleccin es mltiple, el ltimo control seleccionado tiene un manejador (rectngulo de seleccin) diferente al resto. El manejador indica que es
el control principal y es utilizado para maquetar otros controles en base a
ste. Para cambiar la seleccin del control principal pulsamos la tecla Ctrl y
realizamos un clic sobre otro control.
Deshacer / Rehacer
Alinea izquierda
/ derecha / superior / inferior
Centrado vertical / horizontal
Reparto horizontal /
vertical
Adjuntar horizontal /
vertical
Misma anchura
/ altura / tamao
Botones a la derecha
Maquetacin de controles
Para maquetar los controles de un formulario hemos de tener seleccionados, dependiendo de los casos, uno, dos o ms controles. Disponemos de
una barra de maquetacin con los siguientes botones:
Los cuatro primeros botones
alinean los controles seleccionados
por los bordes izquierdo, derecho, superior e inferior, respectivamente, del
control seleccionado en ltimo lugar.
Los dos siguientes
centran los controles horizontal y verticalmente,
respectivamente, dentro del rea del formulario.
Los dos siguientes
espacian tres o ms controles a la misma distancia horizontal y vertical entre ellos, respectivamente.
Estos dos
alinean los botones seleccionados horizontal o verticalmente con respecto al que haya sido seleccionado en ltimo lugar.
Los tres botones
dan a varios controles el mismo ancho, el mismo
alto y el mismo ancho y alto, respectivamente, del control seleccionado en
ltimo lugar.
Con este control alineamos los botones seleccionados en el rea superior derecha del formulario (Ctrl + B).
04
Este control alinea los botones seleccionados en el rea central inferior
del formulario (Ctrl + Shift + B).
Desarrollo bsico
de una aplicacin
Botones al pie
Subir en tab
Bajar en tab
172 173
VELAZQUEZ VISUAL
Panel de controles
Aparece en la parte derecha del editor de formularios. En l se muestra una
lista con todos los controles incluidos en el formulario y da informacin
acerca del Tipo de control del que se trata, posicin horizontal y vertical, altura, anchura y contenido.
Los controles estn ordenados en el panel en funcin del orden de tabulacin que se haya especificado en el formulario, lo que nos ser de mucha
ayuda a la hora de comprobar cul es el orden de tabulacin.
Si en esta lista seleccionamos uno o varios controles, stos aparecern
tambin seleccionados en el editor de formularios. Lo mismo ocurre si en el
formulario seleccionamos uno o varios controles: stos aparecern seleccionados en este panel.
04
En la siguiente figura se muestra cmo se visualiza en el editor de formularios un control de edicin en el que se han agrupado botones.
Una vez agrupados los botones con el control de edicin stos ya no estarn visibles en el diseo del formulario. Para poder editar las propiedades
de alguno habr que hacerlo a travs del panel de controles que se encuentra a la derecha del editor de formularios. Los botones que estn agrupados tendrn un icono diferente:
Como se puede observar en la figura anterior, tenemos tres botones con dibujo, los dos primeros se encuentran agrupados en un control de edicin y
el tercero no.
Los aceleradores que se hayan asignado a cada botn permanecern activos igualmente. En tiempo de ejecucin, estas teclas aceleradoras podrn
ser disparadas solamente cuando el foco est situado sobre el control de
edicin con el que se hayan agrupado los botones, por lo que es posible,
en un mismo formulario, tener varios botones agrupados con diferentes
controles de edicin con la misma tecla aceleradora asignada.
Si el botn tiene establecida una condicin activo, sta ser evaluada igualmente a la hora de desplegar el men en tiempo de ejecucin.
La siguiente figura muestra un control de edicin con el men desplegado
en tiempo de ejecucin.
Cuestiones
1. Tenemos un proyecto que incluye una tabla llamada REGIONES y en
la que se encuentran los campos Nombre, Cdigo, Extensin, Nmero de habitantes, Pas, Principal actividad econmica y Descripcin. Asociar un formulario a la tabla con todos sus campos. Usar
para ello la opcin de men Controles / Campos automticos.
2. Crear de nuevo un formulario asociado a la tabla REGIONES, pero
esta vez sin usar la opcin Controles / Campos automticos. Para
cada campo de la tabla hemos de incluir en el formulario su control
de edicin y un texto que lo identifique (usar los botones Nombre
Desarrollo bsico
de una aplicacin
174 175
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
IDENTIFICADOR
DESCRIPCIN
TIPO
BYTES
Cdigo
Cdigo
Numrico
Nombre
Equipo
Alfa64
30
Ao
Ao fundacin
Numrico
Estadio
Estadio
Alfa64
Foto
Foto
Objeto Dibujo
30
Nueva carpeta
Nuevo objeto
Nuevo objeto del tipo seleccionado
176 177
VELAZQUEZ VISUAL
Si pulsamos el botn Aceptar Velzquez Visual crea el formulario Equipos dentro de la carpeta Equipos.
Al hacer doble clic sobre el objeto formulario Equipos aparece automticamente la ventana de edicin del formulario.
Al seleccionar la opcin de men Controles/Campos automticos... aparece la ventana Seleccin de campos que permite definir los campos de
la tabla que figurarn en el formulario.
04
Desarrollo bsico
de una aplicacin
e
Para aadir el campo Escudo primero aumentamos la altura del formulario, para lo que se hace clic en cualquier punto del formulario hasta que
aparezcan tres cuadrados de color negro en su parte inferior.
178 179
VELAZQUEZ VISUAL
Seleccionamos el cuadrado central (el marcado en rojo en la figura anterior) y situamos el puntero del ratn sobre l, tomando ste la forma de
una doble flecha. Hacemos en ese momento clic con el botn izquierdo
del ratn y mantenemos pulsado, movindonos hacia abajo se consigue
aumentar la altura del formulario (sin el ratn lo conseguiramos mediante la combinacin Shift + cursor abajo).
Objeto dibujo
Pulsando sobre el control recin creado con el botn derecho del ratn
aparecer la ventana Propiedades de: Objeto dibujo.
04
Desarrollo bsico
de una aplicacin
e
180 181
VELAZQUEZ VISUAL
IDENTIFICADOR
DESCRIPCIN
TIPO
BYTES
Nombre
Nombre
Alfa128
35
Lugar
Lugar nacimiento
Alfa64
30
Fecha
Fecha
Fecha
Puesto
Puesto
Alfa64
Foto
Foto
Objeto Dibujo
30
04
Desarrollo bsico
de una aplicacin
e
Volviendo a la ventana de proyectos del editor, en el rea Objetos tenemos el formulario de EQUIPOS creado en el ejemplo anterior. A continuacin vamos a crear los objetos pertenecientes a la tabla JUGADORES. Comenzamos creando la carpeta Objetos4 a la que llamamos
Jugadores.
Dentro de ella creamos, utilizando el botn
Nueva subcarpeta de
la barra de herramientas, la carpeta Rejillas a la que llamamos Jugadores.
Dentro de la subcarpeta Jugadores creamos una rejilla con las siguientes propiedades:
Nueva subcarpeta
182 183
VELAZQUEZ VISUAL
Nuevo objeto
Nuevo objeto del tipo seleccionado
04
Desarrollo bsico
de una aplicacin
e
El identificador del formulario de bsqueda se renombra a JUGADORES-EQUIPO. El rea Objetos tendr ahora este aspecto:
Nombre campo
Edicin
184 185
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
186 187
VELAZQUEZ VISUAL
e Hacemos doble clic sobre el formulario para editarlo. Una vez en la pantalla de edicin, haciendo clic con el botn derecho o mediante la combinacin de teclas Alt+Intro, aparecer la ventana Propiedades de Formulario en
la que determinamos la forma de presentacin y las fuentes que vamos a
usar.
04
Desarrollo bsico
de una aplicacin
e
Si tenemos algn campo que sea de tipo fecha, podemos asociarle un calendario, para lo cual seleccionamos con el ratn el botn calendario
de
la barra de herramientas y lo llevamos a la zona del formulario donde queremos que se encuentre. Con el botn derecho obtenemos la ventana Propiedades de: Calendario y en ella seleccionamos el radio botn Campo y
elegimos el campo tipo fecha que queramos de la lista desplegable.
Calendario
188 189
VELAZQUEZ VISUAL
Si queremos que el formulario sea de baja, debemos aadirle un botn Eliminar. Para ello pinchamos en el control botn con texto, llevndolo al sitio
del formulario donde deseamos que aparezca. Con el botn derecho del ratn aparece la ventana de propiedades del control. En la pestaa General le
decimos que el texto contenido es Eliminar, mientras que en la pestaa Comando elegimos la funcin a disparar Eliminar de entre las que aparecen en
la lista desplegable. Obtendramos algo parecido a lo que se presenta en la
siguiente figura:
Una vez que tengamos creados los formularios de altas, bajas y modificaciones, podemos asociarlos a la rejilla que usemos para ver las fichas de vdeos.
04
Desarrollo bsico
de una aplicacin
e
Resumen
Los formularios son objetos asociados a una tabla de datos del proyecto
con los que podemos realizar altas, bajas y modificaciones en las fichas de
la tabla. Esto es as ya que contienen controles de edicin con los que podemos editar el contenido de los campos y variables de la tabla. Pueden
llamarse desde rejillas, mens y procesos.
Podemos determinar las propiedades de los formularios (nombre, especial
para bsqueda, presentacin en pantalla, condicin de activo, etc.), as como las fuentes que van a usar.
En un formulario disponemos de una gran variedad de controles que nos
permiten disparar funciones, visualizar imgenes y textos, agrupar controles, visualizar rejillas de histrico y subhistrico, visualizar rboles, disparar rejillas alimentadas por procesos, lanzar otros formularios de la tabla, etc.
Las propiedades de cada control son editables. Hay propiedades exclusivas de cada control, otras referentes a la forma en que van a actuar, a su
aspecto, al comando que van a lanzar, etc.
Disponemos de una barra de maquetacin para ajustar la posicin de los
controles que incluimos en el formulario.
190 191
VELAZQUEZ VISUAL
4.4.4. Bsquedas
Crear Bsqueda
Las bsquedas se emplean para realizar consultas en una tabla de datos.
Normalmente se disparan desde los mens, y su resultado es una lista de
registros que debe ser presentada en una rejilla.
Nuevo objeto
Propiedades de la Bsqueda
Al crear una bsqueda o al hacer doble clic sobre ella en el panel derecho
del editor de proyectos, se presenta la ventana Propiedades de la bsqueda donde se definen las propiedades de la misma. Velzquez Visual genera
un identificador por defecto, que podemos modificar. ste aparece en la barra de ttulos del cuadro de dilogo y en el panel derecho del editor de proyectos.
Veamos las propiedades de las bsquedas:
04
Rejilla/rbol para ver el resultado: identificador de la rejilla o rbol visor de
tablas (si la tabla es arbolada) en la que se presentar el resultado de la
bsqueda.
Formulario inicial: especificamos aqu el formulario a usar para peticin de
datos. Se lanzar antes de ejecutarse los componentes de la bsqueda
(aunque hayamos especificado en componentes de la bsqueda que lance
el formulario por defecto), y en l podremos utilizar diversos campos a un
tiempo o variables para editar los parmetros de las bsquedas entre lmites y as poder reutilizar dichos valores en posteriores procedimientos de la
aplicacin.
Pgina Html: si la aplicacin va a ser ejecutada en el Servidor de Aplicaciones de Velzquez Visual y se va a presentar el resultado de la bsqueda en
una pgina web, en este parmetro se indicar el objeto Pgina Html de Velzquez en el que ser presentado el resultado de la bsqueda.
Estilos privada: no aparecer entre las bsquedas que se presentan al usuario final de una aplicacin de Velzquez cuando ejecuta la opcin de listas
Rebuscar.
Estilos invertir orden: mostrar el resultado de la bsqueda ordenado en
sentido inverso.
Filtro secuencial: podemos definir aqu una frmula condicional que deber
cumplir cada registro para ser incluido en la lista final de registros.
Orden: en este cuadro podemos especificar el campo o campos por los que
ordenar el resultado de la bsqueda, sean stos de la propia tabla o de tablas enlazadas (por ejemplo, podemos ordenar libros por el apellido del autor o su procedencia).
Comentarios: aqu podemos escribir comentarios acerca de la bsqueda.
Seleccin inicial: si activamos la casilla de verificacin Utilizar, permitiremos
que se seleccione una ficha determinada en la rejilla resultante de una bsqueda. Habr que especificar el ndice por el que se determinar dicha ficha inicial. A travs del asistente para la edicin de frmulas podremos especificar el contenido inicial para la realizacin de la seleccin. Para abrir el
asistente hemos de pulsar el botn Editar. Es mejor que el ndice usado se
de clave nica.
Desarrollo bsico
de una aplicacin
192 193
VELAZQUEZ VISUAL
Componentes de la Bsqueda
Definiremos aqu uno o varios componentes para realizar la bsqueda, pudiendo hacer una combinacin de los resultados obtenidos con cada componente de bsqueda. Pulsando el botn Aadir (o Modificar, si ya hay algn componente) de la pestaa ndices del cuadro de dilogo Propiedades
de la bsqueda aparece la ventana Componente de Bsqueda, donde se
definen.
04
Desarrollo bsico
de una aplicacin
194 195
VELAZQUEZ VISUAL
Entre lmites: realiza la bsqueda de los registros cuya clave est comprendida entre los lmites, especificados en el Formulario para pedir datos o por
otro procedimiento. En el caso de usar un formulario en el componente, en
ste slo se debe incluir el campo por el que se realizar la bsqueda una
vez porque Velzquez Visual lo presentar dos veces: la primera para recoger el lmite inicial y la segunda para el lmite final.
Formulario para pedir datos: podemos especificar aqu el formulario a utilizar para recoger los datos necesarios en las bsquedas del tipo parte izquierda de la clave y entre lmites. Este formulario debe ser del tipo Formulario para bsquedas y no es necesario que contenga ttulo ni botones
Aceptar y Cancelar ya que Velzquez Visual se los aade en ejecucin. Si
especificamos un formulario en las propiedades de la bsqueda, no har
falta hacerlo aqu. Si hemos seleccionado un ndice de Palabras o de Aproximacin alfabtica ternaria (trozos de palabras), podremos hacer que se
presente o no el formulario de peticin de la(s) palabra(s) o de los trozos de
palabras. Por ejemplo, no es necesario pedir dicho formulario si hemos especificado ya uno en las propiedades de la bsqueda. Adems, en el ndice por palabras podremos especificar si deseamos que realice la bsqueda en el modo que contenga todas las palabras o el modo que contenga alguna de las palabras.
Componente de bsqueda: en este cuadro aparecen los campos que forman parte del ndice seleccionado.
Haciendo doble clic sobre cada uno de ellos, podemos especificar los contenidos iniciales que sern mostrados en los formularios de peticin de datos. Para ello usaremos expresiones frmula, por lo que se admiten constantes, variables globales, campos, etc.
Mezcla: se especifica aqu la forma de combinar el componente de bsqueda seleccionado con el anterior en el caso de bsquedas con ms de
un componente. Hay tres formas de combinar:
Cruzar: el resultado estar compuesto por los registros que se repiten en
este componente y en el anterior.
04
Desarrollo bsico
de una aplicacin
Aadir: el resultado es una lista con los registros que pertenecen al primer
componente y al segundo. Si un registro pertenece a ms de un componente, slo aparecer una vez en la lista final.
Quitar: el resultado es una lista con los registros que pertenecen al primer
componente quitando los que tambin pertenecen al segundo.
196 197
VELAZQUEZ VISUAL
e El ndice PALABRAS utiliza el Tipo de ndice Palabras e indexa igualmente por el campo NOMBRE de la tabla. Se utilizar para realizar la
bsqueda de estudiantes por palabras del nombre.
Finalmente, el ndice TROZOS utiliza el Tipo de ndice Aproximacin alfabtica ternaria (grupos de tres caracteres) e indexa por el campo NOMBRE de la tabla. Permite realizar bsquedas por trozos de palabras del
nombre (mnimo tres caracteres de cada palabra).
Hemos de realizar los siguientes pasos:
Nueva carpeta
Nuevo objeto
04
Desarrollo bsico
de una aplicacin
e
Aadir
198 199
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
Nota: se debe marcar el check Pedir formulario para que Velzquez Visual
le muestre al usuario final un formulario en el cual pueda introducir la palabra o las palabras a buscar.
200 201
VELAZQUEZ VISUAL
Nota: se debe marcar el check Pedir formulario para que Velzquez Visual
le muestre al usuario final un formulario en el cual pueda introducir el trozo
de palabra a buscar.
Con esto en el rea Objetos del Editor de Proyectos aparecern las bsquedas que queramos.
04
Ejemplo: Creacin de una bsqueda compleja
Vamos a ver con un ejemplo cmo desarrollar una bsqueda compleja. Para ello supongamos una aplicacin de una librera, en la que tenemos tres
tablas: LIBROS, EDITORES y AUTORES. Ponindonos en el caso ms simple de que un libro slo haya sido escrito por una persona y editado tambin por una sola persona, la tabla LIBROS es histrica de AUTORES y de
EDITORES (maestros).
Queremos crear una nica bsqueda en la que el usuario final pueda elegir
el tipo y modo de bsqueda que prefiera de las siguientes:
Buscar los libros que en su ttulo contengan todas las palabras que escribamos en el control de edicin Ttulo. En este caso marcaramos el radio
botn Palabras y el radio botn Todas las palabras (los botones Todas las
palabras y Alguna de las palabras slo se activan cuando seleccionamos el
botn Palabras).
Desarrollo bsico
de una aplicacin
e
202 203
VELAZQUEZ VISUAL
e Buscar los libros que en su ttulo contengan alguna de las palabras que escribamos en el control de edicin Ttulo. En este caso marcaramos el radio
botn Palabras y el radio botn Alguna de las palabras.
Buscar los libros que contengan los trozos de palabras que escribamos en
el control de edicin Ttulo, para lo cual marcaramos el radio botn Trozos
de palabras.
Buscar libros que han sido escritos por un determinado autor.
Buscar libros de un mismo editor.
Que todas las bsquedas anteriores puedan cruzarse. Por ejemplo: encontrar todos los libros escritos por Carl Sagan que en su ttulo contengan la
palabra espacio o la palabra estrella, independientemente de quin sea el
editor.
Nuevo objeto
Ya sabemos lo que queremos. Veamos ahora cmo se construye el formulario de bsqueda. Pinchamos sobre el botn Nuevo Objeto
y seleccionamos el objeto Formulario para bsquedas. Le damos al mismo las siguientes propiedades:
04
Desarrollo bsico
de una aplicacin
e
En nuestra aplicacin hemos creado dos variables globales: PALABRASEXACTAS y PALABRAS-TODAS-ALGUNAS ambas de tipo booleano, es
decir, slo pueden tomar el valor 1 o 0. stas van a estar asociadas a los
botones de radio del formulario, de modo que pinchando sobre el radio botn Palabras asignamos a la variable PALABRAS-EXACTAS el valor 1, lo
que hace que se activen los botones Todas las palabras y Alguna de las palabras. Esto es gracias a una condicin de activo que hemos de definir en
la pestaa Estilos del cuadro de dilogo Propiedades de: Botn de radio
($PALABRAS-EXACTAS$=1). Seleccionando el botn Todas las palabras, le
damos a la variable PALABRAS-TODAS-ALGUNA el valor 0, mientras que
le damos el valor 1 si elegimos el botn Alguna de las palabras. Por otro lado, si pinchamos en el botn Trozos de palabras, estamos asignando el valor 0 a la variable PALABRAS-EXACTAS.
Velzquez Visual comprobar el estado de las variables, de modo que dependiendo del valor que stas tengan sabr cul es la bsqueda que debe
lanzar.
Ahora que ya sabemos todo esto, aadamos los botones de radio a nuestro formulario de bsqueda:
Botn de radio Palabras
TAS. Dato fijo: 1.
Botn de radio Trozos de palabras: alimentado por la variable PALABRASEXACTAS. Datos fijos: 0.
Botn de radio Todas las palabras: alimentado por la variable PALABRASTODAS-ALGUNAS. Dato fijo: 0.
204 205
VELAZQUEZ VISUAL
e Botn de radio Alguna de las palabras: alimentado por la variable PALABRAS-TODAS-ALGUNAS. Dato fijo: 1.
Control Nombre campo: autor.
Control Edicin: hemos de asociarlo al campo Autor (con la opcin botones
arriba y abajo activada, se encuentra en la pestaa Ms estilos. Tambin debe tener activada la opcin men desplegable).
Botn dibujo
Botn dibujo
(con la opcin men desplegable activada): funcin a disparar: localizador de autores.
04
Desarrollo bsico
de una aplicacin
e
ndice: PALABRAS
Condicin activa: (fCampoVaco (%TITULO%) = 0) & ($PALABRAS-EXACTAS$ = 1) & ($PALABRAS-TODAS-ALGUNA$ = 0). Evala si el campo ttulo no est vaco y que la opcin marcada en el formulario es buscar el libro
Aadir
206 207
VELAZQUEZ VISUAL
e por Palabras conteniendo Todas las palabras del ttulo. Si en tiempo de ejecucin no se cumple esta condicin, este componente de la bsqueda no
ser ejecutado.
Radio botn Todas las palabras activado.
Pulsamos de nuevo el botn Aadir para introducir un nuevo ndice, especificando los siguientes parmetros para realizar una bsqueda Por palabras del ttulo, y con el modo Alguna de las palabras:
Mezcla: cruzar (la lista final estar compuesta por los registros que aparecen en las dos listas).
ndice: palabras
Condicin activa: (fCampoVaco (%TITULO%) = 0) & ($PALABRAS-EXACTAS$ = 1) & ($PALABRAS-TODAS-ALGUNA$ = 1). Evala si el campo ttulo
no est vaco y la opcin marcada en el formulario es buscar un libro por
Palabras conteniendo Alguna de las palabras del ttulo.
Radio botn Alguna de las palabras activado.
Pulsamos el botn Aadir y especificamos los siguientes parmetros para
realizar una bsqueda Por Trozos del ttulo:
Mezcla: Cruzar
ndice: Trozos
Condicin activa: (fCampoVaco (%TITULO%) = 0) & ($PALABRAS-EXACTAS$ = 0). En este caso buscar el libro Por trozos de palabras.
Es importante darnos cuenta de que en los tres casos anteriores la primera comprobacin que se incluye en la condicin activo es que el ttulo no
est vaco. Esto es as ya que de estarlo no tendramos nada por lo que
buscar.
Pulsamos de nuevo el botn Aadir y especificamos los siguientes parmetros para realizar una bsqueda Por Autores del libro:
Mezcla: cruzar.
ndice: autores.
Condicin activa: fCampoVaco( %AUTORES% ) = 0. Evala si el campo
Autores del formulario est vaco o no.
Modo de buscar: parte izquierda clave (realiza la bsqueda de los registros
cuya parte izquierda de la clave coincida con la introducida por el usuario
en el formulario para pedir datos).
04
Por ltimo, pulsamos el botn Aadir y especificamos los siguientes parmetros para realizar una bsqueda Por Editores del libro:
Desarrollo bsico
de una aplicacin
e
Mezcla: cruzar.
ndice: editores.
Condicin activa: fCampoVaco(%EDITORES%) = 0. Evala si el campo Editores del formulario est vaco o no.
Modo de buscar: parte izquierda clave (realiza la bsqueda de los registros
cuya parte izquierda de la clave coincida con la introducida por el usuario
en el Formulario para pedir datos).
Con esto ya tenemos creada nuestra bsqueda compleja.
Podemos imprimir las propiedades de una bsqueda. Para ello seleccionamos la bsqueda y pulsamos el botn Imprimir
de la barra de herramientas, o seleccionamos la opcin de men Archivo/Imprimir. El informe
mostrar el identificador de la bsqueda, el nombre, los comentarios, la tabla de datos asociada a la misma, la rejilla que se va a utilizar para mostrar
los registros encontrados, los componentes de la bsqueda, mostrando los
ndices con su nombre, tipo y el modo de bsqueda. Asimismo, si hemos
especificado una frmula de filtro secuencial o un orden por un campo determinado, tambin se mostrar en el informe.
Cuestiones
1. Estamos diseando una aplicacin para empadronamientos. Comenzamos creando las tablas CIUDADES y HABITANTES, la segunda histrica de la primera (los habitantes de la ciudad, la ciudad del
habitante). En la tabla HABITANTES aadimos el campo calle.
2. Disear las bsquedas por palabras del campo nombre del habitante, por calle y por ciudad.
3. Aadir el campo Edad a la tabla HABITANTES y disear una bsqueda de habitantes por edad de modo que slo sean devueltos los
habitantes cuya edad se encuentre entre dos lmites que le pasamos
al programa.
4. Disear una bsqueda que devuelva todos los habitantes de una calle que se llamen igual y de cualquier edad (calle y nombre son parmetros que le pasamos al programa).
Resumen
Las bsquedas son los objetos que sirven para realizar consultas en las tablas de datos. Hemos de especificar la tabla de datos en la que buscar, la
rejilla o rbol con la que presentar la lista de registros localizados y los componentes de bsqueda.
Imprimir
208 209
VELAZQUEZ VISUAL
4.4.5. Mens
Son los objetos que se encargan de mostrar al usuario las opciones que el
diseador ha establecido para la aplicacin. Cuando el usuario elige una de
las opciones mostradas, el men dispara el objeto asociado, provocando su
ejecucin.
Cada una de las opciones de un men se compone de una pistola y una o
dos balas. La pistola establece el tipo de accin a realizar y las balas son
los objetos que protagonizan la accin. Por ejemplo, al elegir la pistola Bsqueda, podremos elegir como bala cualquiera de las bsquedas definidas
en el proyecto.
Existen dos tipos de mens: los mens arbolados y los mens tipo formulario.
Arbolado
Arbolado: presentan las distintas opciones de la aplicacin con la apariencia arborescente que utiliza el Explorador de Windows (tm) para presentar las carpetas de las unidades de disco.
Tipo Formulario: permiten que el diseador utilice un formulario de pantalla
completa para que coloque textos y grficos que disparen las distintas opciones del men. Los textos y los grficos que disparan opciones pueden
cambiar su color al ser apuntados por el ratn, el cual tambin cambia de
forma.
Para crear un men, pulsamos el botn Nuevo objeto de la barra de herramientas. De la Galera de Objetos elegimos el icono Men arbolado o Men
tipo formulario.
04
Privado: si se activa esta casilla de verificacin, el men se ocultar al usuario, aunque podr ser lanzado directamente desde algn otro men.
rea izquierda:
Dibujo: debe ser uno de los declarados en el proyecto. Este dibujo se mostrar, junto al men de la aplicacin, en la parte izquierda de la pantalla durante la ejecucin del proyecto.
Color fondo: color asignado para el fondo del rea donde se sita el dibujo.
rbol:
Iconos: debe ser un multi-icono declarado en el proyecto. stos se presentarn al lado de cada nombre de men.
Color texto: color asignado al texto de las ramas del men.
Color fondo: color asignado para el fondo de la zona del men.
Desarrollo bsico
de una aplicacin
210 211
Nueva
Subir o bajar
VELAZQUEZ VISUAL
Una carpeta se compone de un Ttulo, de una o varias opciones y de la casilla de Abrir al inicio. Si est sealada la casilla, el men aparece desplegado al ejecutar la aplicacin.
04
Desarrollo bsico
de una aplicacin
212 213
VELAZQUEZ VISUAL
Doble Ventana: en el caso de que se usen dos balas con las opciones de
men, por defecto son dos paneles verticales los que se presentan, pero si
marcamos la casilla horizontal, tomarn esta orientacin. Tambin podemos
controlar el tamao relativo que tendrn, rellenando la casilla % tamao panel 1. Se refiere al panel de la izquierda o el de arriba, dependiendo de la
orientacin. Si no se rellena, por defecto, el de la izquierda tendr el tamao justo para que se vean todos los controles que tiene, dejando el resto del
espacio de la ventana para el otro men, y en el horizontal se reparten la
pantalla al 50 por ciento.
Estas opciones son comunes tanto para los mens arbolados como para
los mens tipo formulario que veremos ms adelante.
Tipos de Pistola
Disponemos de las siguientes pistolas
04
Desarrollo bsico
de una aplicacin
ADVERTENCIA
Esta pistola est orientada al
programador o al
administrador del sistema
para poder comprobar el
estado fsico de la tabla; as
que no la utilice nunca como
opcin para usuarios finales
de una aplicacin. Dado el
carcter de la misma, en ella
no estn implementadas las
utilidades que tienen las
rejillas (reordenacin de los
registros por un campo,
edicin directa, etc.).
214 215
VELAZQUEZ VISUAL
04
cin esta pistola disparar una rejilla que contendr todos los registros
almacenados en la cesta de la compra especificada. Muy til, por ejemplo, si hemos creado un proceso de generar Pedidos a partir de una lista de Artculos, si en la cesta de la compra vamos introduciendo aquellos artculos que deseamos pedir, utilizando esta pistola de men obtendremos la lista de todos los artculos a pedir y, sobre ella, podremos
ejecutar dicho proceso.
Agenda tabla Completa: dispara el objeto Agendizador seleccionado como primera bala. ste es presentado en una ventana que contiene un
calendario en el que el usuario podr seleccionar una fecha y una rejilla
para presentar los registros encontrados.
Casillero: esta pistola dispara un casillero (objeto visual que veremos
ms adelante). Como primera bala se ha de especificar un proceso con
origen Ninguno y como segunda bala el casillero.
NULA: se utiliza en los mens de tipo Formulario. Sirve para que un objeto de tipo texto o de tipo dibujo no dispare una opcin de un men. Lo
usaremos cuando queramos poner ttulos, adornos, observaciones, para el diseo, etc.
Segunda Bala
Cada opcin de men puede disparar una bala (un objeto) segn la pistola
que hayamos seleccionado. Algunas pistolas admiten una segunda bala
asociada a la primera que hemos elegido. Por ejemplo: supongamos una
opcin de men que se encarga de lanzar un rbol visor de tabla arbolada.
La pistola ser rbol de tabla de datos, la primera bala ser el rbol en particular que queremos ver de entre los que se encuentran en la aplicacin en
ejecucin, y como segunda bala podramos seleccionar una rejilla de histrico, de modo que al elegir un elemento del rbol, nos aparezcan en la rejilla (segunda bala) todos los registros que sean histricos suyos.
Velzquez cuenta con las siguientes segundas balas:
Men: men que se presentar en la parte derecha o inferior de la pantalla, segn sea el caso.
Rejilla histrico: seleccionaremos una rejilla de un histrico de la tabla de
datos asociada al objeto disparado como primera bala.
Formulario: formulario asociado a la misma tabla de datos del objeto disparado como primera bala.
Grfico: hoja de clculo asociada a la misma tabla de datos del objeto
disparado en la primera bala. En sus propiedades debemos seleccionar
tanto la hoja de clculo a presentar como el tipo de grfico a utilizar para su visualizacin.
URL: la segunda bala ser una URL (una pgina web). Para poder ejecutar esta segunda bala, en la tabla de datos asociada al objeto a dis-
Desarrollo bsico
de una aplicacin
216 217
VELAZQUEZ VISUAL
Men arbolado
Aadir
04
A continuacin pinchamos en el botn Aadir y aparecer la ventana Propiedades de una opcin de men, en la que escribimos como ttulo opcional: Bsqueda por palabras.
Desarrollo bsico
de una aplicacin
e
218 219
VELAZQUEZ VISUAL
Al seleccionar la opcin Men de bsquedas podramos obtener un resultado parecido al de la figura anterior.
Cuestiones
1. Tenemos creada una agenda que cuenta con una tabla llamada
AGENDA y a la que aadimos los campos Direccin y N de tfno.
(adems de Cdigo y Nombre). Hemos creado una bsqueda por
palabras del nombre, una rejilla para ver los registros y dos formularios: uno de altas y modificaciones y otro para eliminar las fichas.
Ahora queremos que el men consista en un rbol con una sola carpeta, que llamaremos Agenda, y de la que cuelguen los dos formularios, la bsqueda y la rejilla para ver los registros.
04
Desarrollo bsico
de una aplicacin
220 221
VELAZQUEZ VISUAL
04
Timer: es un reloj que permitir disparar automticamente una o varias
opciones de men cada intervalo de tiempo que fijemos. Para ello tenemos que especificar cada cuntos milisegundos debe activarse el timer.
Tenemos que crear un objeto con timer: creamos un control de texto esttico o un dibujo, con la opcin autodisparable, en el que especificaremos la pistola a disparar automticamente despus de pasado el tiempo del timer x veces.
Adems, podemos hacer que dicho control contine o paralice la ejecucin de la pistola cuando el usuario haga clic sobre l. Para ello, en las
propiedades de la opcin, en el parmetro Ttulo opcional, escribimos
dos palabras separadas por un punto y coma (;). La de la izquierda ser
la palabra que aparecer cuando est parado el proceso y la otra ser la
palabra que aparecer cuando est en marcha. Por ejemplo, en Ttulo
opcional podemos escribir: Continuar;Detener.
Desarrollo bsico
de una aplicacin
Bsqueda de rbol
rbol tabla completa
Casillero
Pelcula
Banda de mosaico
Regin
Men arbolado
Html
Crear polgono de la regin
Aumentar Zoom
Reducir Zoom
222 223
VELAZQUEZ VISUAL
Alineaciones
Centrados
Repartos
Adjuntar
04
Los tres ltimos
dan a varios controles el mismo ancho, el mismo
alto y el mismo ancho y alto, respectivamente, del control seleccionado en
ltimo lugar.
Adems de estas formas de maquetacin, existen dos opciones en men
Maquetar/Alinear, que son:
Vertical: centra verticalmente todos los controles seleccionados con respecto a la posicin del ltimo.
Horizontal: centra horizontalmente todos los controles seleccionados con
respecto a la posicin del ltimo.
Por ltimo, Tamao del contenido F7 nos redimensionar el control al tamao de lo que contiene.
La posicin y las dimensiones de un control se mostrarn en la barra de estado.
Desarrollo bsico
de una aplicacin
Misma altura, anchura y tamao
Puntero del ratn
Dibujo
224 225
VELAZQUEZ VISUAL
Se puede asociar un Tool Tip a un dibujo. Un Tool Tip es un pequeo mensaje que se visualiza cuando el cursor pasa por encima de un control. Para
incluir un tool tip basta con activar la casilla de verificacin correspondiente en el cuadro de propiedades. El texto que se mostrar ser el incluido en
la opcin Ttulo Opcional, que aparece al editar la opcin del control. Es til
cuando se ha incluido un control de tipo dibujo que dispara una opcin, para que el usuario sepa qu opcin se va a disparar desde dicho control.
El botn Editar Opcin permite que se elija la opcin del men que deseamos disparar utilizando el mismo sistema de cuadros de dilogo que en los
mens arbolados.
El parmetro Posicin contiene las opciones siguientes:
La del control: el dibujo se ver, en ejecucin, en la posicin que se haya situado en la creacin del men.
Derecha: el dibujo se ver, en ejecucin, pegado a la derecha del men.
Abajo: el dibujo se ver, en ejecucin, pegado al borde inferior del men.
Derecha y abajo: el dibujo se ver, en ejecucin, pegado al borde inferior
derecho del men.
Estas tres ltimas opciones son tiles para que el men pueda tener buena
apariencia independientemente de la resolucin del monitor del usuario.
04
Desarrollo bsico
de una aplicacin
Gif: con este control podemos incluir una imagen gif, esttica o animada, seleccionndola en la ventana de propiedades del control. Esta imagen
gif debemos seleccionarla de entre los objetos visuales GIF que tengamos
incluidos en el mapa.
Gif
226 227
Texto esttico
Edicin
VELAZQUEZ VISUAL
Texto esttico: permite seleccionar uno de los objetos visuales del proyecto de Velzquez Visual para dispararlo y ejecutarlo. La descripcin del
objeto se usar como texto esttico del men. Si no hemos seleccionado
ningn tipo de fuente para un control de este tipo, se tomar por defecto la
fuente System y, al tratar de cambiar a posicin vertical, no ser pintado, ni
en edicin ni en ejecucin; as que debemos asignarle un tipo de letra distinto.
04
Fuente: tipo y tamao de fuente a utilizar. Podremos elegir entre las que hayamos incluido en las propiedades del men.
Color texto / Color fondo: color que se desea aplicar al texto y al fondo del
control.
Borde: activaremos esta opcin para que el control se pinte con un reborde negro.
Hundido: lo activaremos para que el control se muestre con este efecto.
Multilneas: lo activaremos si deseamos que la variable se presente en varias lneas. Tendremos que darle el alto suficiente para que puedan caber
varias lneas.
Seleccin con Tab: lo activaremos para que el control pueda ser seleccionado con la pulsacin del tabulador.
Slo lectura: lo activamos para que el contenido del control no pueda ser
modificado por el usuario.
Separador de miles: para visualizar el separador de miles si la variable editada es de tipo numrico.
Tamao: ste podr ser Fijo (invariable), de Ancho variable (el ancho variar en
funcin del tamao de la ventana del men), de Alto Variable (el alto del control
variar en funcin del tamao de la ventana del men) o con Ambos variables.
Desarrollo bsico
de una aplicacin
228 229
VELAZQUEZ VISUAL
Calendario
En la ventana de propiedades del control: Microescrollers hemos de especificar la Variable y por el valor a incrementar. Por ejemplo, si editamos una
variable de tipo numrico y como valor especificamos el 10, en tiempo de
ejecucin, cuando pulsemos el botn hacia arriba la cantidad se decrementar en 10 unidades, si pulsamos el botn hacia abajo, se incrementar en 10 unidades. Si la variable fuese de tipo fecha, sta aumentar o disminuir 10 das con cada pulsacin de botn.
Calendario: permitir incluir en el men un calendario. Al seleccionar en
el mismo una fecha, se modificar con esa fecha el valor de la variable global que edite.
04
Desarrollo bsico
de una aplicacin
Slo podremos editar en este tipo de control una variable global de tipo fecha. En la ventana propiedades del control: Calendario seleccionamos la
variable a editar y damos los atributos que queramos al control calendario
(tipo de letra, con o sin borde, tamao).
Botn de radio: controles que se agrupan para que una misma variable
tome diversos valores dependiendo del Botn de Radio seleccionado.
Botn de radio
230 231
VELAZQUEZ VISUAL
Check Box (Casilla de verificacin): mediante un control de este tipo podemos editar variables de tipo booleano en un men de tipo formulario.
En el cuadro de propiedades seleccionamos la variable global de tipo booleano que deseemos, y en el parmetro Texto, escribimos el texto que debe salir junto a la casilla de verificacin.
04
Desarrollo bsico
de una aplicacin
Bsqueda de rejilla
232 233
VELAZQUEZ VISUAL
El cuadro de propiedades presentar una lista con todas las bsquedas del
proyecto que tengan asociado como objeto de salida una rejilla. Seleccionamos la que necesitemos y en tiempo de ejecucin, se lanzar desde el men, mostrando la rejilla asociada a la misma con los registros encontrados.
El parmetro Tamao tiene las siguientes opciones:
Fijo: en ejecucin, la rejilla se visualizar con el tamao dado al control.
Ancho Variable: si activamos esta opcin, en tiempo de ejecucin la rejilla se
expandir o se reducir segn sea el tamao de la ventana y de la resolucin
del monitor. Si el ancho de la ventana es menor que el ancho del control del
men, entonces quedar truncada la rejilla y aparecern las barras de scroll.
Alto Variable: funciona igual que el anterior pero adaptando el alto.
TRUCO
Para evitar este efecto
procuraremos situar el
control de Bsqueda Rejilla
ms abajo que el resto de
los controles.
Ambos Variables: aumentar o reducir el alto y el ancho del control en funcin del tamao de la ventana. Se seguir reduciendo la rejilla hasta que la
ventana sea menor que el tamao del control definido en el men.
Si hemos creado otro control en el formulario que est por debajo del borde inferior de la rejilla y hemos seleccionado Alto Variable o Ambos Variables, en ejecucin se ver un pequeo margen desde la parte inferior del
men y el borde inferior del men (la distancia entre el control que est situado ms abajo y la rejilla).
04
Bsqueda de rbol: permite incluir, en el mismo men, un rbol visor de
tablas arboladas con el resultado de una bsqueda concreta. En tiempo de
ejecucin aparecer en el men un rbol con todos los registros resultantes
de la bsqueda realizada. Para ver sus posibilidades de uso remitimos al
apartado dedicado a la Sincronizacin de controles.
En la ventana de propiedades se presentar una lista con todas las bsquedas del proyecto que tengan asociado como objeto de salida un rbol,
de ellas seleccionamos la que necesitemos.
El parmetro Tamao tiene las siguientes opciones:
Fijo: en ejecucin, el rbol se visualizar con el tamao dado al control.
Ancho Variable: activada esta opcin, en tiempo de ejecucin el rbol se expandir o se reducir segn sea el tamao de la ventana y de la resolucin
del monitor. Si el ancho de la ventana es menor que el ancho del control del
men, entonces quedar truncado el rbol y aparecern las barras de scroll.
Alto Variable: funciona igual que el anterior pero adaptando el alto.
Ambos Variables: aumentar o reducir el alto y el ancho del control en funcin del tamao de la ventana. Se seguir reduciendo el rbol hasta que la
ventana sea menor que el tamao del control definido en el men.
Desarrollo bsico
de una aplicacin
Bsqueda de rbol
234 235
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
Ambos Variables: aumentar o reducir el alto y el ancho del control en funcin del tamao de la ventana. Se seguir reduciendo el rbol hasta que la
ventana sea menor que el tamao del control definido en el men.
Igualmente, si se ha creado otro control en el men que est por debajo del
borde inferior del rbol y se ha seleccionado Alto Variable o Ambos Variables, en ejecucin se ver un pequeo margen desde la parte inferior del
control y el borde inferior del men (la distancia entre el control que est situado ms abajo y el rbol). Para evitar esto procuremos situar el control de
Bsqueda de rbol ms abajo que el resto de los controles.
Tambin podemos especificar la fuente que utilizar el control.
Casillero: permite incluir en el men un casillero. ste consiste en un
conjunto de celdas, en cada una de las cuales se presentan los campos que
queramos de los registros de una tabla.
Casillero
Pelcula
236 237
VELAZQUEZ VISUAL
En el cuadro de dilogo de propiedades del control multimedia hay que especificar el nombre del fichero AVI y la va completa de donde se encuentre
en el caso de que no est incluido en la carpeta del proyecto.
Las opciones de la caja Estilos son:
Borde: para visualizar el borde del control.
Barra de reproduccin y parada: para activar o desactivar la barra de reproduccin y parada.
Barra de men: para activar o desactivar la barra de men del AVI.
Barra de estado: para activar o desactivar la barra de estado del AVI.
Autorrepeticin: para repetir la pelcula una vez que haya llegado a su fin.
Este tipo de controles multimedia son ejecutados en multitarea, por lo tanto, no detienen la ejecucin de la aplicacin.
Podemos especificar una opcin a lanzar desde este tipo de controles que
se ejecutar cuando finalice la visualizacin de la pelcula, para lo cual hemos de marcar la opcin de autodisparable. Si hemos incluido la barra de
reproduccin y parada, la opcin se lanzar cuando se pulse para que pare, aunque no hayamos marcado la opcin autodisparable. Esto es til para realizar presentaciones de programas en vdeo que al terminar lancen el
men principal. Si hemos activado la casilla de Autorrepeticin y hemos incluido una opcin a disparar desde este control, el programa disparar dicha opcin e ignorar la autorrepeticin.
Podemos incluir tantos controles de pelcula como queramos en un mismo men.
Banda de mosaico
04
Desarrollo bsico
de una aplicacin
238 239
VELAZQUEZ VISUAL
Regin: una regin es una zona del men que, en ejecucin, se activa al
pasar el puntero del ratn sobre la misma. Este control permite al programador establecer los lmites de una regin.
04
Tipo: geometra de la regin que vamos a crear. Contamos con las siguientes posibilidades:
Rectngulo: para crear una regin de seleccin rectangular. sta podr redimensionarse con el ratn arrastrando los manejadores de la misma, o
bien, con la tecla shift + los cursores (arriba, abajo, izquierda, derecha).
Crculo: para crear una regin de seleccin circular o elptica. Esta regin
podr redimensionarse del mismo modo que la anterior.
Polgono: para crear una regin de seleccin irregular. Al ser una regin irregular, tendremos que ir definiendo los distintos puntos de la misma a travs
de la subopcin Polgono Regin de la opcin del men Controles, o pulsando el botn
una vez seleccionado dicho control. Podremos definirla
en la zona que deseemos del men, no hace falta que lo hagamos en la zona en la que hayamos situado el control. Una vez seleccionada la opcin
Polgono Regin, veremos que el cursor cambia, esto quiere decir que ya
podemos empezar a definir los puntos de la misma. Basta con hacer clic
con el ratn para ir creando los puntos que la compondrn. Para terminar
con la creacin de la regin, bastar con hacer doble clic sobre la zona en
la que deseemos insertar el ltimo punto.
Esta opcin es til cuando estamos utilizando dibujos; podemos crear la regin siguiendo el contorno de un dibujo, de modo que a la hora de ejecutar
el proyecto, slo se activar cuando el cursor se site dentro de la regin.
Para facilitar la creacin del polgono regin, podemos aplicar un Zoom sobre el men para ampliar el dibujo. En la barra de herramientas del editor de
mens encontraremos los botones
, el primero aumenta el zoom y el
segundo lo reduce.
Por ejemplo, un proyecto que incluya un mapa de Espaa y en el que cada provincia cuente con una regin poligonal que siga su contorno. Al hacer clic en una provincia, dispararemos una bsqueda de los clientes de la
misma.
Tool tips: activada esta casilla de verificacin, cuando, en ejecucin, se pasa con el ratn sobre la regin, se muestra un mensaje con un texto explicativo. El texto ser el que se especifique como Ttulo Opcional en las opciones de la regin.
Efecto a seleccionar: son los efectos de visualizacin que tienen lugar en la
regin cuando pasamos el cursor por ella.
Desarrollo bsico
de una aplicacin
TRUCO
Una regin de seleccin
circular es muy til, por
ejemplo, cuando se
presenta un mapa en el
men en el que las distintas
ciudades estn marcadas
por un punto. Si creamos
una regin circular del
tamao de cada punto, al
pasar por el mismo con el
ratn podremos hacer que
se dispare una opcin, por
ejemplo, ver los clientes de
esa ciudad.
240 241
VELAZQUEZ VISUAL
Men arbolado: permite incrustar como control dentro de un men formulario un men arbolado existente en el proyecto.
04
Desarrollo bsico
de una aplicacin
Html
242 243
VELAZQUEZ VISUAL
Texto esttico
04
Desarrollo bsico
de una aplicacin
e
Definimos las propiedades del control que queramos y a continuacin pulsamos el botn Editar Opcin, apareciendo la ventana Propiedades de una
opcin de men. Como Ttulo opcional escribimos LIBROS (es el texto que
va a presentar el control), como Pistola elegimos NULA.
244 245
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
Procedemos de este modo con todos los objetos de la tabla LIBROS que
queremos disparar desde el men, eligiendo en cada caso las pistolas y las
balas adecuadas. Por ejemplo, si queremos un control que lance un localizador, la pistola ser localizador, y la bala ser el localizador en particular
que queremos lanzar, mientras que si queremos dar de alta un libro, la funcin ser Formulario (Alta) y la pistola ser el formulario que nos permita dar
de alta un libro (LIBROS-ALTA).
Al final obtendremos un men para la tabla LIBROS.
246 247
VELAZQUEZ VISUAL
04
Vamos a agrupar las opciones a disparar de las tres tablas en dos mens:
el de libros y otro que rene autores y editores.
Desarrollo bsico
de una aplicacin
e
248 249
VELAZQUEZ VISUAL
e cluir carpetas men y como bala el men Autores-Editores. Por ltimo incluimos un cuarto texto esttico, que servir para cerrar la aplicacin, que
llevar el ttulo opcional Salir y con la pistola Cerrar aplicacin.
El siguiente paso es el de crear el men Autoexec. Para ello pulsamos el botn Nuevo Objeto y de la Galera de objetos elegimos men tipo formulario.
En la pantalla de edicin de mens pinchamos sobre el control texto esttico, arrastrndolo con el ratn hasta la posicin que queramos que ocupe
en el men.
04
Con el botn derecho sobre el control aparece la ventana de propiedades
del control, en la que pinchamos sobre el botn Editar opcin. En Titulo opcional escribimos Arrancando aplicacin, como pistola elegimos Men,
como primera bala elegimos el men General y como segunda bala elegimos el men Autores-Editores. Tambin hemos de marcar la casilla autodisparable. Este men ha de tener como identificador AUTOEXEC para que
al ejecutarse el mapa sea el men que Velzquez Visual lo identifique como
el men que ha de arrancar en primer lugar.
Desarrollo bsico
de una aplicacin
e
250 251
VELAZQUEZ VISUAL
Ya slo nos falta por crear el men ONCLOSE. Para ello pulsamos el botn
Nuevo Objeto y de la Galera de objetos elegimos Men tipo formulario. En
el editor de mens pinchamos con el ratn sobre el botn texto esttico y
arrastramos hasta el punto del men en el que queremos que se encuentre
el texto. Hacemos clic con el botn derecho sobre el control y aparecer la
ventana Propiedades del control. Pulsamos el botn Editar opcin y como
Ttulo opcional escribimos Gracias por usar la aplicacin, como pistola
elegimos NULA. Volvemos a pinchar sobre el botn texto esttico, arrastrndolo hacia el men. Pulsamos con el botn derecho sobre el control,
volvemos a pulsar sobre el botn Editar opcin y como Ttulo opcional escribimos Salir. Como pistola elegimos Cerrar aplicacin.
De este modo, cuando pulsemos la opcin Salir del men General, aparecer el men Onclose, en el que debemos pulsar la opcin Salir para
que se cierre la aplicacin definitivamente.
Sincronizacin
En el men Controles encontraremos la opcin Sincronizar, mediante la
cual podremos realizar la sincronizacin de controles (para ello haremos
clic con el ratn sobre un control y seleccionaremos esta opcin, con lo
que en el cuadro de dilogo se mostrarn los controles sincronizables con
ste y los que ya han sido sincronizados. Seleccionando un control y pulsando la opcin del men Controles / Sincronizar aparece la ventana de
sincronizacin.
04
Sincronizacin de rejillas
Lo que se pretende es utilizar en los mens una o varias rejillas en las que
al cambiar un registro en la rejilla de la tabla maestra, cambie automticamente el contenido de otro u otros controles de rejillas histricas de la misma. Tambin queremos que se puedan Disparar opciones de men relacionadas con el registro marcado en la rejilla. Por ejemplo, si tenemos en el
men una rejilla de pintores y por otro lado una opcin de bsqueda de
obras de un pintor, nos puede interesar que la opcin de bsqueda se dispare cuando seleccionamos uno de los registros de la rejilla. Para que esto
sea posible necesitamos los siguientes objetos:
Una variable en memoria.
Un proceso.
Una rejilla de maestro.
Una rejilla de histrico.
Dos bsquedas.
Tendremos que seguir los siguientes pasos:
Crear una variable en memoria del mismo tipo y longitud que el campo cdigo de la tabla maestra.
Desarrollo bsico
de una aplicacin
252 253
VELAZQUEZ VISUAL
Bsqueda rejilla
Sincronizacin de casilleros
Es similar a la sincronizacin de rejillas. Podemos verlo con un caso particular en el que el casillero principal tenga asignado un proceso al hacer clic
sobre l, de modo que se pase el cdigo de la ficha a una variable global.
El otro casillero (el sincronizado) debe ser alimentado por un proceso de origen nulo en el que se cargar la lista por el ndice del campo maestro, en
cuya resolucin se utilizar esa variable global en memoria.
04
Desarrollo bsico
de una aplicacin
Cuestiones
1. En la aplicacin de libros que hemos desarrollado en los ejemplos
anteriores, podemos aadir al men Autoexec un control texto con
pistola nula cuyo Ttulo opcional sea Aplicacin de librera. Cmo
haramos que el men Autoexec se mantenga durante 3 segundos
en pantalla?
2. Aadimos el campo Materia a la tabla LIBROS de nuestro proyecto
de librera y creamos una tabla arbolada que llamaremos MATERIAS,
maestra de LIBROS. De este modo tendremos organizados los libros
por materias.
3. Queremos que en el men General aparezca una opcin que sea
Materias, de modo que, al seleccionarla, nos aparezca el rbol de
materias y con la opcin de que al pinchar sobre un elemento del rbol, nos salga una rejilla con todos los libros correspondientes a esa
materia.
Esquema de tablas
Nueva tabla maestra
Nueva tabla arbolada
254 255
VELAZQUEZ VISUAL
Ahora vamos a crear los campos que deber tener cada una de las tablas.
Para ello seguimos los pasos siguientes:
Dentro del Editor de Esquemas hacemos doble clic sobre la tabla CLIENTES. Velzquez Visual mostrar la ventana con los componentes correspondientes a dicha tabla.
Nuevo campo
ID
Nombre
Tipo
Longitud
DNI
CIF
Alfa64
Repetimos los pasos anteriores para crear el resto de campos en las otras
tablas. En la tabla FAMILIAS no hay que aadir ningn campo, mientras que
en ARTICULOS aadimos los campos siguientes.
04
Desarrollo bsico
de una aplicacin
e
ID
Nombre
Tipo
Longitud
PVP
Precio
Numrico
4 (2 decimales)
FOTO
Foto
Objeto Dibujo
ID
Nombre
Tipo
Otras propiedades
FECHA
Fecha
Fecha
CANT
Cantidad
Numrico
IMP
Importe
Numrico
A continuacin vamos a crear los objetos visuales para las distintas tablas:
La tabla CLIENTES: contiene la rejilla CLIENTES que slo mostrar los
campos Cdigo y Nombre comercial, y el formulario CLIENTE-NUEVO/MOD, que mostrar todos los campos creados en la tabla.
La tabla FAMILIAS contiene la rejilla FAMILIAS que mostrar todos los
campos de la tabla, el rbol visor tabla arbolada FAMILIAS, el formulario
FAMILIA-NUEVA/MOD que incluye todos los campos de la tabla, y adicionalmente en la tabla se incluye el objeto multi-icono ICOS-FAMILIAS
para el rbol visor de tabla arbolada.
En la tabla ARTICULOS incluimos la rejilla ARTCULOS, que muestra los
campos Cdigo, Nombre, Familia y PVP, el formulario ARTCULOS NUEVO/MOD que incluye todos los campos de la tabla y la bsqueda
ARTCULOS-COD.
La tabla LINEAS contiene la rejilla LINEAS-FECHA, que muestra todos los
campos de la tabla, el formulario LINEA-NUEVA/MOD que contiene todos
los campos de la tabla, y la bsqueda LINEAS-COD.
Tambin creamos una carpeta dibujo en la que se incluirn los dibujos
FONDO y SALIR.
El siguiente paso consiste en crear el men sincronizado. Dicho men, que
ser el de inicio de la aplicacin (AUTOEXEC), va a tener las siguientes propiedades.
256 257
VELAZQUEZ VISUAL
Vamos a describir los diferentes elementos que va a incluir y sus correspondientes propiedades. Los iremos incluyendo desde la ventana de Edicin del
men formulario (accedemos a ella haciendo doble clic sobre el men).
04
Mosaico: ser usado para el fondo del men.
Desarrollo bsico
de una aplicacin
e
Mosaico
Texto esttico
258 259
VELAZQUEZ VISUAL
Texto esttico
04
Texto esttico: este control se va a encargar de lanzar el formulario de
alta correspondiente a Artculos. Procedemos igual que antes, eligiendo en
este caso como bala el formulario ARTCULOS-NUEVO/MOD.
Texto esttico: control que lanzar el formulario de altas de Ventas. En
este caso hemos de elegir como bala el formulario VENTA-NUEVA/MOD.
El resto de etiquetas del men tienen la misma ventana de propiedades,
mientras que los Ttulos opcionales que hemos de escribir al pulsar el botn Editar opcin son los siguientes:
1) Seleccione una familia haciendo clic.
2) Seleccione un artculo haciendo clic o pulse en.
3) Seleccione la fecha desde.
4) Seleccione la fecha hasta.
5) Esta rejilla muestra las ventas segn las condiciones seleccionadas.
6) Seleccione un cliente haciendo clic o pulse en.
rbol tabla completa: control para visualizar el rbol de la tabla FAMILIAS.
Desarrollo bsico
de una aplicacin
e
Texto esttico
rbol tabla completa
260 261
Calendario
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
Una vez creadas las variables globales podemos crear los dos controles
calendario, que tendrn las siguientes propiedades:
262 263
VELAZQUEZ VISUAL
Bsqueda con rejilla: con este control vamos a incluir una rejilla cuyos
elementos sean el resultado de una bsqueda concreta. En el cuadro de
propiedades del control aparecen todas las bsquedas del proyecto que
tengan asociada una rejilla como objeto de salida.
04
Casillero alimentado por proceso: previamente a la creacin de este
control debemos crear el casillero y el proceso. En primer lugar, vamos a
crear dos procesos: uno que nos almacene en una variable el artculo que
seleccionemos (ARTICULOS-CLIC), y otro que permita visualizar en el casillero los artculos (CASILL-ARTIC-FAM).
Proceso ARTICULOS-CLIC:
Creamos una variable (ARTICULO-CURSO) que tengan las siguientes propiedades.
Creamos el proceso (objeto Proceso, dentro de la ventana Galera de objetos), que tendr las siguientes propiedades.
Desarrollo bsico
de una aplicacin
e
264 265
VELAZQUEZ VISUAL
El proceso almacena el contenido del campo CODIGO de la tabla ARTICULOS (es decir, el registro seleccionado) en la variable creada anteriormente
(ARTICULO-CURSO).
Proceso CASILL-ARTIC-FAM
Creamos una variable global (FAMILIA-CURSO) que almacenar la familia seleccionada en un momento determinado. Tendr las siguientes propiedades.
04
Vamos a realizar una sincronizacin entre el rbol tabla completa de FAMILIAS y el casillero de ARTICULOS, de modo que crearemos una bsqueda
dentro de la tabla ARTICULOS (denominada CASILL-ARTICULOS-FAM)
que tendr las siguientes propiedades.
El ndice FAMILIAS que vamos a utilizar en la bsqueda tiene las propiedades que se presentan a continuacin.
Desarrollo bsico
de una aplicacin
e
266 267
VELAZQUEZ VISUAL
e ARTICULOS, para que cada vez que en el rbol se selecciona una familia
aparezcan los artculos pertenecientes a dicha familia. Lo que ocurre es que
el control rbol visor no permite la herencia, es decir, si por ejemplo tenemos la familia Monitores, y en un segundo nivel tenemos la familia de Monitores de 17 y la familia de Monitores de 19, cuando hagamos clic en Monitores no aparecern los monitores de 17 y de 19 debido a la falta de herencia en el rbol.
Para solucionar este inconveniente se crea la bsqueda por el ndice FAMILIAS, y como lmite inicial tendr el valor de la variable FAMILIA-CURSO
(que gracias al proceso FAMILIA-CURSO tendr el valor de la familia en la
que estemos) y como lmite final tendr el valor de la variable ms la cadena ZZZZZZZ, para indicarle que incluya todos los pertenecientes a la familia. De esta manera se consigue la herencia.
El proceso tendr el siguiente aspecto:
04
Desarrollo bsico
de una aplicacin
e
Bsqueda con rejilla: vamos a crear el control que nos mostrar la rejilla de ventas.
268 269
VELAZQUEZ VISUAL
e En primer lugar creamos, dentro de la tabla de VENTAS, una bsqueda llamada VENTAS-FECHAS-ART-CLI, que tiene las siguientes propiedades:
04
Desarrollo bsico
de una aplicacin
e
270 271
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
e
Control
Sincroniza a
Casillero: ARTICULOS
Calendario: FECHA-DESDE
Bsqueda: VENTAS-FECHAS-ART-CLI
Calendario: FECHA-HASTA
Bsqueda: VENTAS-FECHAS-ART-CLI
Bsqueda: VENTAS-FECHAS-ART-CLI
Casillero: ARTICULOS
Bsqueda: VENTAS-FECHAS-ART-CLI
Resumen
Los mens son los objetos encargados de mostrar al usuario las opciones de
una aplicacin, de modo que, cuando el usuario elige una de las opciones
mostradas, el men dispara el objeto asociado, provocando su ejecucin.
Cada opcin de men consta de una pistola y una o dos balas. La pistola
establece el tipo de accin a realizar, mientras que las balas son los obje-
272 273
VELAZQUEZ VISUAL
4.4.6. Localizador
El localizador es un objeto que permite, en tiempo de ejecucin, encontrar
un registro de una tabla de datos. En ejecucin, se presenta una rejilla, un
combo box con ndices por los que se puede realizar la bsqueda y un control de edicin en el que, a medida que el usuario vaya escribiendo una cadena, el cursor en la lista se sita en el registro que contenga dicha cadena, en el campo del ndice por el que se realice la bsqueda. Un ejemplo es
en la que se presenta un localizador de libros en el que podemos encontrar
un registro (libro) por cualquiera de los ndices de la tabla LIBROS que queramos (ms adelante haremos una matizacin al respecto).
04
Desarrollo bsico
de una aplicacin
El localizador se puede disparar desde una opcin de men, desde un botn de formularios o desde un proceso.
Desde una opcin de men, al seleccionar un registro nos abre el formulario de modificacin asociado a la rejilla usada en el localizador.
Desde un botn de formularios nos trae el registro al formulario que estamos editando y que deba tener un campo enlazado al de la tabla del registro.
Desde un proceso no aparece ni el combo del ndice ni el edit para escribir
el dato a buscar, sino que lo tenemos que seleccionar directamente.
Para crear un localizador en nuestro proyecto, pinchamos en el botn Nuevo objeto
y dentro de la Galera de objetos elegimos Localizador. Obtendremos el siguiente cuadro de propiedades:
Nuevo objeto
274 275
VELAZQUEZ VISUAL
Estilos:
Privado: el localizador slo estar disponible donde el programador lo estime oportuno.
Todos los ndices: en tiempo de ejecucin el usuario podr localizar registros por cualquiera de los ndices creados en la tabla de datos. Si desactivamos esta opcin, se activarn los botones de seleccin de ndices.
Memorizar ltimo ndice: si se activa esta propiedad, en ejecucin, el ndice
de bsqueda que se presente por defecto en el localizador ser el que haya sido seleccionado la ltima vez que se hubiese disparado dicho localizador.
Botn para altas: activada esta opcin, en la ventana del localizador aparecer un botn que abre el formulario de altas asociado a la rejilla del localizador.
Los botones que se encuentran sobre la lista de ndices cuando desactivamos la opcin Todos los ndices son:
Aadir
Eliminar
Mover hacia arriba
Mover hacia abajo
Aadir
: permite aadir a la lista un ndice de la tabla de datos. Se abrir
una ventana con aquellos ndices que no estn incluidos en la lista de ndices del localizador. Para seleccionar uno, haremos doble clic sobre l o lo
seleccionamos y pulsamos el botn Aceptar.
Eliminar
04
En nuestra aplicacin, la tabla POBLACIONES es submaestra de PROVINCIAS. El ndice CODIGO de la tabla POBLACIONES est compuesto por los
campos PROVINCIAS y CDIGO.
Desarrollo bsico
de una aplicacin
276 277
VELAZQUEZ VISUAL
Ampliar
Para que Velzquez sepa cul es la Provincia por la que tiene que buscar,
le pasamos el cdigo de la misma mediante la variable $PROVINCIA$. Todo esto lo hacemos pinchando en el botn Ampliar
. Entonces nos aparecer el Asistente para edicin de frmulas, en el que seleccionamos la variable global $PROVINCIA$.
04
Resumen
El localizador es un objeto que permite, en tiempo de ejecucin, encontrar
un registro de una tabla de datos por cualquiera de los ndices de la tabla.
Los localizadores ofrecen la posibilidad de subindexar, recurso que nos permite encontrar registros haciendo uso de ndices formados por dos o ms
componentes.
4.5
Ejecucin (VRunner)
Desarrollo bsico
de una aplicacin
278 279
VELAZQUEZ VISUAL
Si seleccionamos uno de los archivos y pulsamos Ver fichero, nos sale una
ventana en la que se nos indica el estado del fichero (correcto o incorrecto) y el tipo de archivo que es (si es un fichero de datos, ndices, variables,
etc.).
04
Procesos en ejecucin presenta un cuadro de dilogo con los procesos que
Velzquez Visual est realizando en segundo plano. Esta opcin estar
inactiva si no se estn ejecutando procesos en segundo plano.
Podemos abortar un proceso desde esta ventana pulsando el botn abortar. Si hay fichas bloqueadas las desbloquear pero no realizar modificacin alguna a partir de este punto. Solamente pueden ser abortados los
procesos en los que as se haya programado. Para ello, deben tener la funcin de proceso: Punto donde se puede abortar.
Configurar impresora: al pinchar en esta opcin aparece el cuadro de dilogo configurar impresin. Podemos seleccionar una impresora, el tamao
del papel, su orientacin y las propiedades de la impresora seleccionada.
Asignar impresoras: pinchando en esta opcin aparece la ventana Configurar impresoras: en ella se conectan las impresoras lgicas con sus correspondientes impresoras fsicas y sus caractersticas especiales de impresin
(orientacin del papel, tamao del mismo, nmero de copias, etc.).
El programador asigna, a cada informe, un tipo de impresora adecuado. Esta etiqueta con la que se realiza la asignacin se llama impresora lgica. Por
ejemplo, el programador puede haber creado una impresora lgica para documentos que se vayan a imprimir en formato DIN-A4, otra para facturas,
etc.
Al ejecutar esta opcin tendremos que asignar la impresora fsica correspondiente a cada impresora lgica definida por el programador, e incluso
podemos seleccionar la calidad en la que va a ser impreso, el nmero de
copias, etc.
Estas conexiones podemos cambiarlas siempre que lo deseemos y si queremos que sean permanentes slo tendremos que activar la opcin Establecer las nuevas conexiones la prxima vez que se ejecute el programa.
As, cada vez que vayamos a imprimir un informe no tendremos que andar
cambiando de impresora segn el tipo de informe de que se trate.
Cuando se ha conectado una impresora lgica a una fsica, al lanzar el informe ste ser enviado directamente a la impresora, no presenta el cuadro
de dilogo de seleccin de impresora de Windows (tm).
Desarrollo bsico
de una aplicacin
280 281
VELAZQUEZ VISUAL
Opciones
En este men podremos configurar los mens, los usuarios y ejecutar el
proyecto.
Minimizar mens: permite minimizar el men activo cuando el usuario selecciona una opcin del mismo. Cuando un men es minimizado, la ventana de
ste quedar reducida solamente a una pequea porcin de la barra de ttulos del mismo, y se situar en la parte inferior izquierda de la pantalla.
Configuracin: en esta opcin se declaran los caracteres para formatear valores numricos. El sistema propone para el separador de miles el smbolo
punto (.) y para los decimales una coma (,).
La opcin Milisegundos retardo autocompletar permite, en campos NOMBRE de una tabla maestra, que al escribir en el control una cadena transcurridos los milisegundos establecidos en esta opcin el programa presente automticamente el primer registro de la tabla maestra cuyo campo nombre comience por dicha cadena. La parte aadida quedar seleccionada,
con lo que, si el usuario prosigue la escritura, la parte seleccionada ser
sustituida por los nuevos caracteres que el usuario escriba.
Esto slo funcionar as si hemos activado la propiedad Autocompletar en
el control de edicin del maestro.
04
ta de la izquierda Velzquez Visual crea un grupo llamado supervisores en
el que incluye a la persona que arranca el Proyecto por primera vez. Estar
desactivada si la aplicacin tiene configurado no pedir usuario.
El usuario que tenga la casilla supervisor activada podr crear nuevos grupos y nuevos usuarios, adems sern los nicos que puedan reconstruir el
sistema tras haberse producido una cada del mismo. Un usuario no podr
dar de alta, modificar o borrar a otros usuarios con un nivel privilegio mayor
o igual al suyo.
Las opciones de la ventana Usuario son:
Desarrollo bsico
de una aplicacin
282 283
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
cin, la aplicacin debe ser ejecutada por cualquier usuario que haya sido
dado de alta como Administrador que tenga nivel de privilegio suficiente como para poder modificar a otros usuarios.
Si se ha creado alguna personalizacin, aparecer listada en el control. Por
tanto, cada usuario puede tener sus propios informes y dibujos personalizados. A cada usuario de la aplicacin se le puede asignar solamente una
personalizacin, pero una misma personalizacin puede ser asignada a diferentes usuarios. Adems, cuando al usuario se le asigna un perfil, tendr
a su disposicin tanto los objetos que se han creado para todos los usuarios como los que se hayan creado en la personalizacin asignada.
Si existe alguna personalizacin con el mismo nombre que el proyecto (el fichero .MAP o .VAM) sta ser cargada automticamente para todos los
usuarios. Si se han creado personalizaciones con nombre diferente al de la
aplicacin, habr que, una vez ejecutada la aplicacin por un usuario que
tenga privilegio de administrador, ejecutar la opcin del men Opciones /
Usuarios y a cada usuario que se le quiera asignar la personalizacin indicrselo en el apartado Perfiles.
ADVERTENCIA
Si se han creado
personalizaciones durante la
ejecucin de la aplicacin,
para que stas puedan ser
cargadas hay que cerrar la
aplicacin, estando
disponibles al volver a
ejecutarla. Esto es
importante, por ejemplo, si la
aplicacin se ejecuta desde
un servidor (aplicaciones
que suelen estar
continuamente en
funcionamiento); no basta
salir de la aplicacin como
usuario para que aparezcan
los nuevos perfiles, sino que
se ha de reiniciar la
aplicacin.
284 285
VELAZQUEZ VISUAL
e Una vez hecho esto, en el men Edicin / Estilos de usuario elegimos con
el ratn el nmero que queramos para el estilo y pulsamos el botn Modificar. En la zona de edicin que aparece escribimos el nombre que queramos
darle al estilo, en nuestro caso escribimos no puede dar de alta libros.
El siguiente paso es introducir la condicin por la cual el formulario para altas de libros no estar activo si el usuario tiene el estilo No puede dar de
alta libros. Tal condicin la fijamos en la condicin activo del formulario,
para lo cual en la ventana propiedades del formulario activamos la casilla
Condicin activo.
04
Aparecer entonces el Asistente de Edicin de Frmulas, en el que introducimos la condicin.
La condicin es fUserFlag(1)!1. La funcin fUserFlag() devuelve el estilo de
usuario cuyo nmero sea x. En nuestro caso, fUserFlag(1) devuelve el estilo No puede dar de alta libros. Entonces, el formulario estar activo (condicin de activo) si el estilo de usuario No puede dar de alta libros es distinto (distinto de se simboliza con !) a 1 (1 es verdadero, 0 es falso), es decir, si el estilo de usuario no es No puede dar de alta libros.
Aceptamos todo y ejecutamos la aplicacin. En el ejecutor vamos a la opcin de men Opciones/Usuarios, apareciendo la ventana de Edicin de
usuarios, en la que elegimos el usuario al que vamos a darle el estilo. Aparece entonces la ventana Usuario en la que hemos de seleccionar la casilla
correspondiente al estilo que acabamos de crear y que queremos darle al
usuario.
Ver
Si la opcin Barra de Herramientas est seleccionada, se muestra la barra
de herramientas, con sus botones correspondientes, en la parte superior de
la pantalla.
Si la opcin Barra de Estado est seleccionada, se muestra la barra de estado en la parte inferior de la pantalla.
Desarrollo bsico
de una aplicacin
e
286 287
VELAZQUEZ VISUAL
Si la opcin Pantalla completa (F11) est seleccionada, no se ver ni el marco del Ejecutor ni el men de opciones del mismo.
Bandejas E-mail
Organizador
Si en nuestra aplicacin se ejecutan funciones de Correo electrnico, podremos activar la opcin Display Out (o pulsar el botn
Bandejas Email
de la barra de herramientas) para ver los mensajes enviados y recibidos.
Una vez ejecutada, aparecer una ventana como la siguiente:
Ventana
Desde este men podemos organizar la distribucin en la pantalla de las
ventanas que tengamos abiertas. Adems de los modos tpicos de organizacin de ventanas de Windows (cascada, mosaico horizontal, mosaico
vertical) incluye otra forma de visualizacin, llamada Organizador.
Mediante esta forma de visualizacin todas las ventanas que estn abiertas
se organizarn a modo de separadores (en la parte inferior izquierda de las
mismas). As, para cambiar de ventana, simplemente haremos clic con el ratn sobre la pestaa correspondiente.
Otra forma de activar el organizador es pulsando el botn
de la barra de herramientas.
Organizador
04
As es como se ve un programa ejecutado con el organizador:
? (Ayuda)
Desarrollo bsico
de una aplicacin
288 289
VELAZQUEZ VISUAL
Maestros
Histricos
Histricos de todos
Las opciones del Navegante se dispararn desde el men Navegante. Tambin disponemos de tres botones en la parte inferior de la rejilla que realizan la misma funcin:
Maestros...,
Histricos e
Histricos de
todos... Con ellos podemos cargar los maestros de los registros de la rejilla, podemos movernos a histricos de un registro de la rejilla o a histricos
de todos los registros de la rejilla.
Los resultados de las operaciones realizadas con el Navegante son visualizados en una nueva rejilla.
El Navegante puede utilizarse mltiples veces sin ninguna limitacin. Podemos combinar varias listas y utilizar de nuevo el Navegante con los resultados obtenidos, y as sucesivamente. Sin embargo, s podemos condicionar
la navegacin a histricos en la programacin, limitando con condiciones
impuestas por nosotros impidiendo o permitiendo al usuario navegar hacia
ciertas tablas.
ADVERTENCIA
Slo aparecen en el
navegador las rejillas que
hemos creado como
pblicas. Si todas las rejillas
de una tabla fuesen
privadas, los usuarios no
podran usar la navegacin
para ir a esa tabla. Esto es
aplicable tanto a la
navegacin a maestros
como a histricos.
04
Histricos
Al seleccionar la opcin Histricos o al pulsar el botn correspondiente
aparece un cuadro de dilogo donde se puede elegir una de las tablas histricas de la lista actual y una rejilla donde poder ver los registros de la tabla
histrica que estn siendo apuntados por el registro seleccionado de la lista
actual. Si no est seleccionado un registro, esta opcin no estar disponible.
Por ejemplo, si nos encontramos en una lista con pases (maestro), podemos obtener gracias a esta opcin todas las ciudades (histrico) del pas
que tengamos seleccionado.
Histricos de todos
Al seleccionar la opcin Histricos de todos, o al pulsar el botn correspondiente, aparece un cuadro de dilogo donde se puede elegir una de las tablas
histricas de la lista actual y una rejilla donde poder ver todos los registros de
la tabla histrica que estn siendo apuntados por los registros de la lista actual.
Desarrollo bsico
de una aplicacin
290 291
VELAZQUEZ VISUAL
Por ejemplo, si nos encontramos en una lista de Provincias (maestro), podemos ver todas las ciudades (histrico) de todas las Provincias de la lista.
4.5.3. Transacciones
Velzquez Visual trabaja en modo transaccional, tanto en su versin basada en servidor de disco (ejecucin con VRunner) como en su versin cliente-servidor.
Podramos definir una transaccin como una operacin que le pedimos a
nuestra aplicacin, que implica escritura en disco, por ejemplo, si llevamos
a cabo un proceso de facturacin, estaramos llevando a cabo una transaccin. Para realizarla hemos de leer registros, pero qu ocurrira si en mitad de una transaccin se modifica un registro implicado en el proceso?:
obtendramos un resultado incorrecto. Para asegurarnos de que esto no
ocurra se bloquean las fichas durante la transaccin.
La ejecucin de aplicaciones con el fichero VRunner est basada en un servidor de disco (arquitectura de red local), es decir, en un sistema de ficheros compartidos; lo que implica que no existe un servidor de bases de datos que gestione las operaciones.
Los servidores de disco admiten un nmero muy limitado de bloqueos concurrentes, por lo que en Velzquez Visual con arquitectura VRunner stos
son puntuales: no se puede mantener un bloqueo durante toda la transaccin, pues saturaramos las limitaciones del servidor de disco. Entonces,
cuando trabajamos en la arquitectura de servidor de disco (VRunner), se
bloquea una ficha, se modifica y se le quita el bloqueo (una a una). Pero, para que las transacciones sean totalmente independientes entre estaciones
cliente, hay que mantener por cada transaccin todos sus bloqueos. En la
arquitectura cliente-servidor se mantienen todos los bloqueos hasta que la
transaccin haya finalizado.
Asimismo, indicar que otros sistemas de bases de datos basados en servidor de disco carecen de un sistema capaz de deshacer transacciones pendientes que garantice la integridad de los datos tras la reconstruccin del
sistema. Como mucho, simplemente reindexan, con lo que los datos de los
ficheros implicados pueden no ser reales.
Para comprenderlo mejor pongamos un ejemplo de cliente-servidor: un
usuario realiza cierta operacin a un campo (sumar o restar una cantidad,
por ejemplo), y a continuacin otro usuario realiza otra operacin a ese mismo campo. Si al primer usuario se le corta la transmisin, todas las operaciones sobre ese campo dependen de la realizada por el primer usuario y,
junto a todas las que se realicen despus, quedarn invalidadas. Debe entonces deshacerse esa primera operacin antes de validarlas. Tenemos dos
opciones, o bien deshacemos todas las operaciones (al arrancar la aplicacin por un administrador, ste podr hacerlo), o bien eliminamos el fichero
.TRN que se ha generado y revisamos las operaciones que se han realizado.
Esta ltima opcin no garantiza que los datos sean correctos y habra que
04
regenerar ndices. Sin embargo, deshaciendo las operaciones, garantizamos
la integridad de los datos, quedando stos como estaban antes del fallo.
Con el botn Reparar, desharemos la transaccin pendiente. Si cancelamos, no se podr acceder a las tablas daadas, pero podr repararlas el
administrador la siguiente vez que entre en la aplicacin. Con Editar Log,
podremos aadir comentarios al archivo que documenta los sucesos.
En la ejecucin de aplicaciones de Velzquez Visual no se pierden datos, sino que se da opcin al supervisor del sistema de deshacer solamente las
transacciones sin validar para as garantizar la veracidad de la informacin
que contienen.
En la ejecucin de aplicaciones de Velzquez Visual en arquitectura clienteservidor, al existir un mdulo servidor, el sistema de transacciones es individualizado por cliente, es decir, un usuario jams puede perjudicar a otro.
Si durante la ejecucin de una aplicacin Velzquez en modo cliente-servidor se produjese una cada del sistema en un cliente, esta cada solamente
le afectara a l, el servidor deshara la transaccin generada por ste, sin
que afecte en ningn momento a las realizadas desde el resto de las estaciones cliente.
Resumen
VRunner es el mdulo que ejecuta, en arquitectura de red local, los proyectos diseados en Velzquez Visual.
Con las opciones de men del ejecutor podemos ver los ficheros del mapa
abierto, ver los procesos en segundo plano, asignar impresoras lgicas, dotar de estilos y perfiles al usuarios, etc.
El ejecutor presenta una serie de opciones ya programadas, entre las que
destaca la posibilidad de navegar hacia maestros y hacia histricos desde
los registros de una lista.
Desarrollo bsico
de una aplicacin
292 293
VELAZQUEZ VISUAL
Una transaccin es una operacin que realiza nuestra aplicacin que implica escritura en disco, siendo necesario que se produzca un bloqueo de registros.
4.6
Agenda de tareas
04
Desarrollo bsico
de una aplicacin
294 295
VELAZQUEZ VISUAL
La aplicacin nos permitir seleccionar el cliente mediante un cdigo propio (numrico), o tecleando las primeras letras de su nombre.
Podremos escoger el tipo de tarea de entre una lista preestablecida por el
diseador de la aplicacin (llamada telefnica, enviar fax, enviar correo
electrnico, visita, programar, analizar, otras tareas).
Una vez fijada la fecha inicial tendremos tres maneras de seleccionar la fecha final:
Teclearla directamente en el control (o casilla) correspondiente.
Fijar los das que dura, de modo que la aplicacin calcule automticamente la fecha de fin.
En el caso de que la tarea sea permanente, es decir, a realizar todos los
das del ao, la fecha de fin ser calculada automticamente.
Las fechas de inicio y final sern, por defecto, las del da de creacin de la
tarea. Adems, al marcar una tarea como realizada se tomarn la fecha y
hora del momento como fecha y hora de realizacin.
Adems del cliente aparecer, de manera automtica, el usuario de la aplicacin que crea la tarea.
Seremos capaces de buscar una tarea concreta por la descripcin corta de
la misma, por palabras o por trozos. Tambin podremos buscar tareas pendientes, tareas a realizar en el da, entre fechas y tambin habr una bsqueda avanzada en la que podamos discriminar por Cliente, si la tarea est realizada o no y entre fechas.
Seleccionando una fecha concreta, veremos toda la informacin de las tareas, realizadas, pendientes, permanentes, con la informacin de los das
que faltan para que termine el plazo de realizacin de la tarea.
Segn la situacin en que se encuentre la tarea (realizada, pendiente o permanente), la informacin ser presentada en la rejilla con un color identificativo.
Estando en el formulario, podremos abrir la tarea anterior o la siguiente en
el tiempo.
04
Desarrollo bsico
de una aplicacin
En este caso es fcil darse cuenta de que necesitamos al menos tres tablas:
CLIENTES, cuyos registros contendrn la informacin acerca de cada cliente; TAREAS, en la que tendremos datos de cada tarea; y TIPOS DE TAREA,
que contiene los distintos tipos de tarea que podremos seleccionar en la
aplicacin.
Qu tipo de relacin mantienen las tablas entre s? Centrndonos en
CLIENTES y TAREAS el anlisis a realizar es el siguiente:
Podemos tener varias tareas referidas a un solo cliente, pero no tenemos
varios clientes para una tarea. Por tanto, podramos formar las frases: Un
Cliente puede tener muchas Tareas (de ahora en adelante diremos que TAREAS es un histrico de CLIENTES), y Una Tarea pertenece a un Cliente
(por tanto CLIENTES es maestro de TAREAS).
Con esto llegamos a la conclusin de que hay que establecer un enlace a
histrico (plural) desde CLIENTES a TAREAS, y por tanto un enlace a maestro (singular) desde TAREAS a CLIENTES. ste es el enlace ms comn que
podemos encontrar al analizar un problema (ms adelante veremos un tipo
de tabla que se denomina histrica. No debemos confundirnos: el que una
tabla sea histrica de otra no implica que sea una tabla de tipo histrico.
Una tabla puede ser histrica de otra debido al enlace que las une, o ser definida de tipo histrico).
Vamos a definir las dos tablas como tipo maestro normal con clave numrica ya que necesitamos que cada tarea y cada cliente puedan ser identificados con un cdigo nico, que nos lleve a cada registro en concreto, y que
sern los que relacionen cada tarea con cada cliente.
Una vez definidas las frases en las que nos apoyamos para establecer el enlace y qu tablas queremos crear, entramos en el editor y creamos un nuevo mapa.
Seleccionamos la opcin de men Archivo/Nuevo o pulsamos el botn
situado en la barra de herramientas del Editor de Proyectos. Guardemos el
archivo con el botn
y llammoslo agenda.map. Acordmonos de guardar a menudo la aplicacin segn la vayamos creando para no perderla por
algn problema de continuidad.
Pasemos entonces a la ventana del Esquema de Tablas, a travs de Ventana/Esquema de Tablas o el botn
situado en la barra de herramientas.
Como estamos en un nuevo mapa, al pasar al Esquema de tablas nos saldr el asistente de creacin de tablas. En l elegimos Maestro normal con
clave numrica.
Nuevo proyecto
Guardar proyecto
Esquema de tablas
296 297
VELAZQUEZ VISUAL
Aqu tendremos que rellenar los datos de Nombre plural, nombre singular
y, si queremos, un comentario. El resto de datos nos sirven los que vienen
dados.
Al aceptar aparecer el icono de la tabla CLIENTES en el esquema de tablas. Para crear la tabla TAREAS podemos, o bien ir al men Tablas/Crear
Nueva tabla (Ctrl+T), con lo que nos saldra de nuevo el asistente, o bien
pulsamos el botn
Nueva tabla maestra en la barra de herramientas del
panel derecho, con lo que nos saldra el siguiente cuadro de dilogo:
04
Desarrollo bsico
de una aplicacin
298 299
VELAZQUEZ VISUAL
Velzquez Visual representa este tipo de enlace con una flecha roja (enlace
plural a histrico) y una flecha azul (enlace singular a maestro).
04
Desarrollo bsico
de una aplicacin
En el campo NOMBRE, sustituiremos el nombre por Descripcin, y usaremos ste como la descripcin corta que exponamos. As, los ndices creados para el campo NOMBRE sern los de Descripcin Corta. Lo que no hemos de hacer es cambiar el identificador, ya que perderamos algunas de
las ventajas que ofrece Velzquez Visual para ste.
En el ndice CLIENTES aadimos dos componentes: Fecha y Hora de inicio.
De esta manera, si tenemos varias tareas para un mismo cliente, stas pueden ser ordenadas adems por la fecha y hora de inicio.
Persona
Comenzamos creando el campo Persona, para lo cual podemos teclear insertar o pulsar el botn
Nuevo campo. Velzquez Visual crea un nuevo
campo al que hemos de dar un identificador, que ser el que se use para
referenciarlo en funciones, procesos, frmulas, etc. Aceptamos el identificador (PERSONAS en este caso) y aceptamos de nuevo (o doble clic del ratn) para que nos aparezca el cuadro Propiedades del campo.
Nuevo campo
300 301
VELAZQUEZ VISUAL
Hemos de rellenar el Nombre del campo, que ser el que aparezca despus
en las etiquetas, rejillas, formularios, etc. Le asignaremos el Tipo Alfa 40, ya
que para el nombre del usuario nos basta con maysculas. Para el Contenido inicial de este campo usaremos la variable de sistema u, que devuelve
el nombre del usuario de la aplicacin. La funcin de este campo ser la de
guardar qu usuario crea la tarea.
Fecha
A continuacin crearemos el campo Fecha, que ser el encargado de guardar la fecha de inicio de la tarea. Su identificador ser FECHA y haciendo
doble clic veremos la ventana Propiedades del campo.
04
El Nombre del campo ser Fecha, elegiremos el tipo Fecha y en Contenido
inicial vamos a hacer que por defecto aparezca la fecha del da en el que
damos de alta la tarea. Para ello abrimos el Asistente, pulsamos el botn
funciones
y de la carpeta fecha elegimos la funcin Hoy.
Das
Ahora vamos a crear un campo al que daremos el identificador DIAS. En la
ventana de Propiedades del campo le asignamos el Nombre: Das, Tipo numrico y Longitud 2.
Desarrollo bsico
de una aplicacin
Funciones
302 303
VELAZQUEZ VISUAL
Das de Aviso
Creamos otro nuevo campo, al que le damos el identificador DIAS-AVISO.
En la ventana Propiedades del campo le damos el Nombre: Avisar cuntos
das antes, mientras que su tipo ser numrico de Longitud 2.
Queremos que nuestra aplicacin nos avise anticipadamente de que una tarea va a vencer, de modo que es en este campo DAS-AVISO donde especificamos con cuntos das de antelacin queremos que salte el aviso.
04
Desarrollo bsico
de una aplicacin
Campos y variables
304 305
VELAZQUEZ VISUAL
la que visualizamos las tareas correspondientes. La fecha que seleccionemos en el calendario ser guardada en la variable AGENDA-FECHA. En este campo que acabamos de crear queremos que se guarde el nmero de
das que faltan para que venza una tarea, contando desde la fecha que indicamos en el calendario. Ahora ya se entiende que su contenido inicial sea
el da de vencimiento menos la fecha marcada en el calendario ms un da,
que son justo los das que faltan.
ADVERTENCIA
El contenido de un campo
tipo objeto texto puede ser
tan largo como se quiera, no
est limitado ni determinado
como un campo alfabtico,
alfa-128, alfa-64, etc. Pero
ha de usarse cuando se
sabe que los textos sern
largos, porque ocupa como
mnimo 512 Bytes tenga el
texto que tenga (a no ser
que est vaco). Si su
contenido, en general, va a
ser de menor tamao, es
preferible usar un alfa-128,
alfa-64, etc.
Descripcin larga
Creamos otro campo al que damos el identificador DESC-LARGA. En las
Propiedades del campo le damos el Nombre Descripcin larga, su Tipo ser Objeto Texto. La finalidad de este campo es la de guardar una descripcin larga de cada tarea.
04
Tarea realizada
Creamos otro campo al que le damos el identificador REALIZADA. En las
Propiedades del campo especificamos que el Nombre sea Realizada y su
Tipo sea booleano.
Tipo de tarea
Entramos ahora en un campo especial. Segn decamos en la exposicin
del problema, queramos definir cada tarea por un tipo que tuviera disea-
Desarrollo bsico
de una aplicacin
306 307
VELAZQUEZ VISUAL
Nuevo objeto
Creamos en primer lugar la tabla esttica. Para ello, nos situamos en la ventana principal y creamos un nuevo objeto (usando el botn
, o en el men Objetos/Nuevo/Objeto. Seleccionamos el objeto Tabla Esttica, aparecindonos un cuadro de dilogo con las opciones:
04
Usando el botn
Aadir, vamos introduciendo el cdigo y la descripcin,
hasta completar la lista de tipos de tarea.
Aceptamos, y ya tenemos creada la tabla esttica, que aparecer en la ventana principal, en el panel izquierdo, en la zona de Estructura de datos, a
donde podremos volver siempre a editarla. Nada ms aceptar nos aparecer como identificador TABLEST1. Es preferible cambiarlo por uno ms
claro, al igual que el resto de identificadores. Pondremos de nombre TIPOSTAREAS.
Desarrollo bsico
de una aplicacin
Aadir
308 309
VELAZQUEZ VISUAL
Ahora vamos a crear el campo que estar enlazado con esta tabla. Nos vamos a editar la tabla TAREAS y aadimos un nuevo campo. Le pondremos
como identificador TIPO-TAREA y entraremos a sus propiedades.
04
Realizada
Para este campo usaremos de nuevo el tipo booleano.
Desarrollo bsico
de una aplicacin
310 311
VELAZQUEZ VISUAL
Funciones
Arrancado el asistente, vamos a usar una funcin de Velzquez Visual. Para ello pulsamos el botn
Funciones F4 con el que desplegamos el men de funciones y escogemos la funcin fDecidirDato() dentro de la carpeta de Funciones Varias.
04
Aqu tenemos tres campos a rellenar. Una frmula condicin y qu resultar si se cumple o si no se cumple. Como queremos que al marcar Realizada se tome el valor de la fecha, empezaremos por la condicin. Velzquez
Visual trabaja con booleanos, con lo que la frmula que pongamos como
condicin debe ser 1 o mayor que uno para que d verdadero, y 0 para que
d falso. En este caso, la condicin es que el booleano Realizada est activado, es decir, igual a 1. Por tanto si %REALIZADA%=1, entonces tendremos un resultado, sino, el otro. Por otro lado, queremos, si se cumple, tome la fecha de hoy, pero que si no se cumple, el campo quede vaco, no tome ningn valor.
Vamos a ver cmo se hace esto en Velzquez Visual: lo primero establecer
la condicin. Para ello abrimos el Asistente 1, que nos sacar un asistente
de frmulas como el anterior. %REALIZADA%=1 es lo mismo que poner
%REALIZADA%. La funcin evala si es uno o ms de uno (en este caso,
como el campo es booleano nicamente tomar valores 1 o 0), o si es cero y la resuelve.
Desarrollo bsico
de una aplicacin
312 313
Campos
Aceptar (intro)
VELAZQUEZ VISUAL
Ahora vamos al resultado que dara si se cumple la condicin: datoSI. Pulsamos el Asistente 2. Para tomar la fecha del da que marcamos realizado
usaremos la funcin fHoy(), de la carpeta de Funciones de Fechas.
04
Por fin ya tenemos la funcin con todos los parmetros completos, ya que
si la condicin no se cumple, no hay que dar ningn valor al campo, con lo
que el ltimo parmetro se deja vaco.
Esto mismo hay que hacerlo para la hora, pero usando la funcin fAhora()
en vez de fHoy().
Desarrollo bsico
de una aplicacin
314 315
VELAZQUEZ VISUAL
Descripcin realizado
Vamos a crear de nuevo un campo tipo objeto texto para incluir un comentario sobre la realizacin, al igual que en el caso de Descripcin Larga. Damos como identificador DESC-REALIZADA y como nombre Descripcin
Realizado.
04
Desarrollo bsico
de una aplicacin
de los componentes de ese ndice. Nosotros queremos que, una vez abierto un formulario de una tarea, apretando un botn vayamos a la anterior o
siguiente tarea en el tiempo. Esto quiere decir que tenemos que usar un ndice del campo Fecha.
Creamos, pues, un ndice cuyo componente sea Fecha con identificador
FECHA. Para ello podemos pulsar el botn de crear Nuevo ndice, o Nuevo
ndice del campo una vez tenemos seleccionado el campo Fecha:
.
Este ndice ha de contener, adems del campo Fecha, como componente
Hora de Inicio, ya que puede haber varias tareas para una misma fecha, y
de esta forma las ordenamos primero por fecha y luego por la hora.
Para este tipo de enlace, como para cualquier otro, su resolucin siempre
ha de ser de por un ndice de Clave nica.
Si pueden coincidir dos tareas con la misma fecha y hora, podemos aadir
como componente del ndice el campo Cdigo que ya es seguro que es nico para cada tarea.
316 317
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
318 319
VELAZQUEZ VISUAL
Vemos que usar el asistente ha sido lo mismo que crear un campo nuevo,
dndole un identificador y un nombre. Eligiendo en el control Enlazado? la
opcin Hermano Contiguo y pulsando a continuacin resolucin, podemos
escoger el ndice. Si probamos con el que hemos hecho con el asistente
podremos ver que, al igual que antes, podemos escoger el ndice, N de
Partes Comunes, Direccin (esta ltima solo una, ya que hay que crear un
hermano en cada direccin).
04
Desarrollo bsico
de una aplicacin
CDIGO, y puesto de Clave nica. De esta manera, poniendo partes comunes 1, al abrir el formulario de una tarea, podramos desplazarnos a otras
tareas a realizar para el mismo cliente.
Con esto, hemos acabado la creacin de campos, pero para realizar otras
operaciones dentro de la aplicacin necesitaremos un ndice ms. Como
necesitaremos saber qu tareas estn pendientes, vamos a crear un ndice que nos lo resuelva. Pulsamos
Nuevo ndice, ponemos como nombre Pendientes, el tipo de ndice ser Acepta Repetidas, y vamos a usar
una condicin para indexar. Tal como planteamos la aplicacin, las tareas
realizadas estn marcadas con un booleano que llamamos Realizada. Si
ste es cero es que la tarea est pendiente, y si vale uno estar realizada.
Entonces, en el control Campo condicin para indexar seleccionamos
REALIZADA y, muy importante, en Estado del campo para indexar, lo dejamos sin activar. Esto quiere decir que REALIZADA tiene que estar a cero para ser indexada, si estuviera activada indexara las que ya estuviesen
realizadas, y nosotros queremos las pendientes. Como identificador ponemos PDTES-FECHA. Aadimos como componentes del ndice la FECHA y HORA-INICIO, para que las tareas aparezcan ordenadas por estos
ndices.
Esta manera de indexar tiene dos ventajas: si queremos saber las tareas
pendientes, simplemente basta sacar una lista por este ndice, no hay que
realizar ninguna bsqueda. Si queremos buscar las que ya estn realizadas,
basta quitar a la lista total las que tenemos en este ndice. La otra ventaja
es el tamao del ndice, ya que slo pasan a formar parte de ste las fichas
que cumplan la condicin, con lo que ste pasa a ser menor. En esta aplicacin puede o no ser muy importante, pero cuando se trabaja con gran
cantidad de datos, reducir los ndices s que puede serlo.
Nuevo ndice
320 321
VELAZQUEZ VISUAL
Con esto ya tenemos creado el Esquema de Tablas, los campos que intervienen y sus ndices.
Aadir
Nueva carpeta y nueva
subcarpeta
En primer lugar vamos a elegir las fuentes por defecto que vamos a usar en
el proyecto, para lo cual vamos a la opcin de men Edicin/Fuentes por
defecto, apareciendo la ventana fuentes por defecto. En ella podemos seleccionar las fuentes que podremos usar en rejillas, formularios, mens, informes y casilleros, para lo que hemos de pinchar en la pestaa correspondiente, pulsar el botn Aadir
, y seleccionar la fuente en la ventana
Fuente.
Lo segundo ser crear carpetas y subcarpetas para los objetos visuales que
vamos a ir creando. Usando los botones
(Nueva carpeta y nueva subcarpeta) creamos una principal que se llame Clientes para los objetos visuales de esta tabla.
04
Desarrollo bsico
de una aplicacin
322 323
Nuevo objeto
VELAZQUEZ VISUAL
El resultado final ser una carpeta con subcarpetas donde iremos incluyendo los objetos visuales. Para que al crear los objetos sean incluidos en la
carpeta correspondiente debemos situarnos en ella antes de pulsar el botn
Nuevo objeto.
Clientes
Rejilla
Empezaremos a trabajar con la tabla CLIENTES, creando una rejilla donde
representaremos los datos del cliente. En la Ventana Principal del Proyecto
nos posicionamos en la carpeta de rejillas de Clientes y creamos un nuevo
objeto
, seleccionando rejilla visor de tablas.
04
Desarrollo bsico
de una aplicacin
TRUCO
Para que la tabla a la que
pertenece el objeto se
asigne automticamente,
hay que posicionarse
primero con el ratn en la
tabla (en el panel izquierdo),
de modo que al seleccionar
Nuevo Objeto ya estar
asignado a esa tabla.
Entramos entonces en la
rejilla aceptando o con doble
clic del ratn.
324 325
VELAZQUEZ VISUAL
Coloreado rpido
04
Pero hay otra caracterstica que es muy interesante de cara a una mejor visualizacin, y es la posibilidad de que las lneas pares lleven otro color. Para escogerlo, pulsamos el botn
Propiedades del objeto, o ALT+Intro.
Nos aparece de nuevo la ventana de propiedades de la rejilla y modificamos
en la caja Cuerpo, el color de fondo par.
Desarrollo bsico
de una aplicacin
326 327
VELAZQUEZ VISUAL
De este modo, en la rejilla las lneas pares tendrn un color distinto, facilitando la lectura (y haciendo ms vistosa la rejilla). Las rejillas impares, sin
embargo, conservarn el color de fondo.
04
Al pie de la columna nos muestra los pxeles que ocupa el contenido (Velzquez Visual lo calcula teniendo en cuenta el tipo de letra que se ha escogido para esa columna, y si lo cambiamos hay que volver a darle el ancho). Para la columna Nombre, sin embargo, nos aade >>, lo que significa que el ancho es variable y en ejecucin se ampliar hasta completar la
ventana.
Desarrollo bsico
de una aplicacin
328 329
VELAZQUEZ VISUAL
Formulario
Creacin del formulario
Como pudimos ver en la ventana propiedades de rejilla, a cada rejilla se le
puede asignar un formulario de edicin: alta, baja y modificacin. Puede ser
un solo formulario con las tres funciones, o bien un formulario especfico
para cada funcin. En este ejemplo optamos por la primera opcin.
Nos posicionamos en la carpeta de formularios y creamos uno nuevo.
04
Desarrollo bsico
de una aplicacin
330 331
VELAZQUEZ VISUAL
Tenemos dos maneras de hacerlo: introduciendo control a control y editndolos, o usar el asistente. Ahora vamos a usar este ltimo, seleccionando
en el men Controles/Campos automticos.
De este modo, aade cuatro controles al formulario. Por un lado dos etiquetas (texto esttico) y dos controles de edicin.
04
Los nombres de las etiquetas de texto esttico los coge del nombre del
campo.
Y los controles de edicin apuntan al campo tambin. Podemos ver entonces que en Velzquez Visual, asociando el campo al control, y dependiendo del tipo de este ltimo, stos ya saben qu deben hacer: coger el nombre para la etiqueta, guardar lo que haya en el edit correspondiente al campo, etc. El tipo de dato que recogen, el tamao, etc. No hay que hacer nada ms.
Desarrollo bsico
de una aplicacin
332 333
VELAZQUEZ VISUAL
Ahora seleccionamos el control de edicin de Cdigo y despus, manteniendo la tecla Ctrl pulsada, seleccionamos el de Nombre, ahora pulsamos
Alinear superior, y procedemos igual con los textos estticos de Cdigo
y Nombre.
Alinear superior
Alinear derecha
Ahora alineamos la etiqueta Cdigo con su control de edicin por la derecha pulsando
Alinear derecha. Y Nombre con el suyo por la izquierda.
Podemos cambiar los tipos de letra a los controles, pulsando con el botn
de la derecha del ratn sobre uno de ellos o con ALT-ENTER. Elegimos la
pestaa de Aspecto y cambiamos el tipo de letra y el alineamiento.
04
Vamos a aadir una caracterstica a estos controles y es que, cuando estemos en ellos, en ejecucin el color de fondo cambie. Para ello, vamos a la
pestaa de Aspecto y en color de fondo foco ponemos aquel que queramos. Desde luego, para que se vea bien, tiene que ser un color cercano al
que usamos como fondo. Si ste es blanco, y el texto negro, cualquier color claro puede quedar bien.
Desarrollo bsico
de una aplicacin
334 335
VELAZQUEZ VISUAL
Botones
Ahora vamos con los botones. Tenemos ya creados uno de aceptar y otro
de cancelar. Vamos a ver qu propiedades tienen.
ADVERTENCIA
Independientemente de la
etiqueta que tenga un
botn, lo que realiza
depende nica y
exclusivamente del comando
que le hayamos asignado.
Tanto el botn Aceptar como Cancelar cuentan con una pestaa en las propiedades llamada Comando. En el control Funcin a disparar escogemos lo
que debe pasar cuando pulsamos el botn. Aprovechamos a cambiar el tipo de letra en la pestaa Aspecto.
Crearemos ahora dos botones nuevos. Uno va a tener la funcin de aceptar pero sin cerrar el formulario, con lo que limpiar de datos ste y nos permitir meter otro cliente sin cerrarlo y volverlo a abrir. Adems, como este
formulario va a servir para alta, baja y modificacin, necesitaremos un botn para eliminar.
Pulsamos con el ratn sobre el control
botn con texto, llevndolo hasta
la zona del formulario donde queremos que permanezca. Pulsando con el botn derecho sobre el control aparece la ventana de propiedades del botn.
04
Desarrollo bsico
de una aplicacin
En la pestaa de General ponemos la etiqueta que llevar el botn. En Texto Tool tip podramos poner una Informacin que aparecera al pasar por encima del botn con el cursor del ratn.
Ahora vamos a la pestaa de Comando y buscamos entre las funciones la
que nos interesa.
Una vez hecho, lo colocamos junto al resto. Ahora vamos a crear el que nos
queda pero de una manera diferente. Como con el botn de eliminar hay que
tener cuidado, vamos a crear un botn men, del que cuelgue la opcin de
eliminar. Este eliminar ser adems de tipo controlado, es decir, cuando seleccionemos el botn eliminar, nos preguntar si estamos seguros.
Comenzamos con el botn men
Opciones
336 337
VELAZQUEZ VISUAL
04
Seleccionamos Men desplegable y vemos cmo en el panel de la derecha
se convierte y desaparece del formulario. Queda asociado al botn men
(en este caso Opciones). Puede haber varios botones men en el mismo
formulario, pero nuestro botn eliminar slo aparecer en el botn men en
el que est pegado. En este caso, como lo creamos justo despus del botn men, ya est bien colocado, pero podramos usar las flechas
de la
En los botones que hemos creado (Aceptar, Aceptar y seguir, Cancelar, Opciones/Eliminar) en el control nombre de la pestaa General, podemos aadir el smbolo & delante de una letra, por ejemplo: &Aceptar, Aceptar y &seguir, &Cancelar, &Opciones/&Eliminar. De esta manera accederemos a esos
botones con la tecla ALT y la letra posterior al smbolo &. Por ejemplo:
ALT+A activara el botn Aceptar.
Ahora que ya tenemos los controles para introducir el campo Cdigo del
CLIENTE, su Nombre, y tenemos los botones creados, vamos a aadir un
nuevo elemento.
Separador de subformularios
Usaremos un separador de subformularios para ver cmo funciona y cmo
gracias a ellos podemos aadir funciones a un formulario sin tocar lo que
ya hemos creado. En esta pestaa, aadiremos un subformulario que llamaremos CLIENTES-TAREAS y en el que mostraremos las tareas que el
cliente tiene asignadas. Como al ver un formulario nos encontramos en una
ficha de cliente, si aadimos un control de Rejilla de histrico nos mostrar
los histricos que cuelgan de esa ficha. Histricos de un cliente son las tareas, luego nos mostrar las tareas del cliente. Para ver esas tareas del
cliente, hemos de crear una rejilla para tareas, que llamaremos Tareas de
Clientes para que se vea en la ficha del cliente.
Vamos a la carpeta de formularios de clientes (no hace falta que cerremos
el formulario que estamos haciendo) y creamos una subcarpeta para los
Subformularios. All creamos un formulario al que damos como identificador
Desarrollo bsico
de una aplicacin
338 339
VELAZQUEZ VISUAL
CLIENTES-TAREAS, le asignamos la tabla CLIENTES y lo llamamos &1. Tareas. Con esto lo que conseguimos es que, como ttulo de la pestaa en el
separador, aparezca 1. Tareas, con el 1 subrayado porque esa pestaa ser accesible pulsando ALT+1.
Para mostrar tareas, necesitaremos una rejilla para esta tabla. As que creamos una nueva carpeta en raz que se llame Tareas y le damos un color y
un nombre. Creamos las subcarpetas para los distintos objetos de la tabla
y, dentro de la carpeta de rejillas, creamos una nueva. A la rejilla le asignamos la tabla TAREAS (aunque vayamos a usar la rejilla en CLIENTES, la rejilla muestra datos de tareas) y la llamaremos Tareas de Clientes. Como
identificador usaremos TAREAS-CLIENTES. Entramos y usamos de nuevo
el asistente para crearla, pero esta vez no con todos los campos. Escogemos Fecha, Hora de Inicio, Hora finalizacin, Descripcin, Tipo de Tarea>Descripcin (para este ltimo, si escogiramos Tipo de Tarea nos mostrara slo el cdigo. Cogiendo Tipo de Tarea->Descripcin mostramos el
nombre que viene en la tabla esttica).
No hace falta incluir el nombre del cliente, ya que esta rejilla la usaremos para mostrar las tareas en la ficha del cliente. Y pulsamos crear segn seleccin. Con el asistente de Coloreado rpido, escogemos el color y luego ponemos el color para las lneas pares. Con esto hemos terminado con la rejilla. Volvemos de nuevo al subformulario de clientes para su edicin.
Rejilla de histrico
En l vamos a insertar un nico control, por lo que borramos los botones (ya
que aparecern en el formulario principal) y pulsamos el botn
Rejilla de
histrico.
04
Desarrollo bsico
de una aplicacin
Por ltimo maquetaremos el formulario. Colocaremos los controles de edicin arriba, el separador de subformularios en medio y los botones abajo
ordenados. Para esto ltimo usamos el botn
Botones al pie de la barra
de herramientas de la izquierda, escogiendo, en primer lugar, los botones
en el orden que queremos que aparezcan y pulsando luego el botn. Veremos que nos lleva todos los botones excepto el Botn men. Ajustamos este ltimo con los dems y los colocamos a la derecha.
Separador de subformularios
Aadir
Botones al pie
340 341
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
TRUCO
Como veamos antes, en el panel de la derecha de edicin del formulario tenemos la lista de todos los controles y su orden. Este orden es tambin el
orden de tabulacin, es decir, en ejecucin, cuando pulsemos el tabulador
pasaremos de un control a otro segn este orden. Una vez terminado un
formulario debemos comprobar que el orden es el correcto. Para corregirlo
podemos usar las flechas
342 343
VELAZQUEZ VISUAL
Bsquedas
Ahora disearemos las bsquedas. Comenzaremos con una bsqueda por
cdigo del cliente. Nos vamos a la carpeta de bsquedas del cliente y creamos un nuevo objeto Bsqueda en la base de datos. Le asignamos la tabla
CLIENTES y le ponemos de nombre Clientes por Cdigo.
Aadir
04
Creamos otra bsqueda igual pero para el ndice Nombre, que nos servir
para listar los clientes por orden alfabtico.
La siguiente que creemos ser aprovechando el ndice de palabras: ser
una bsqueda por palabras del campo Nombre del cliente. La creamos al
igual que las anteriores, excepto que en la ventana Componente de Bsqueda, al haber seleccionado el ndice de palabras, nos salen varias opciones. Escogemos Todas las palabras, para que al buscar por el nombre, nos
encuentre todos aquellos clientes que coincidan con todas las palabras que
tecleamos en la bsqueda. Adems activamos Pedir Formulario, para que
Velzquez Visual se encargue de mostrarnos un formulario para pedir datos
sin tener que programarlo nosotros.
Desarrollo bsico
de una aplicacin
344 345
VELAZQUEZ VISUAL
Hacemos lo mismo para la bsqueda por trozos. Sin embargo, en este caso no nos da ms opcin que Pedir formulario.
Ahora crearemos un localizador, objeto que nos servir para buscar un
cliente desde cualquier formulario de otra tabla histrica (es decir, para buscar un cliente a la hora de asignarlo a una tarea), o desde un men.
Insertamos un nuevo objeto visual, que ser el localizador e indicamos
Nombre: Clientes, Tabla de datos: CLIENTES, Rejilla: CLIENTES. Escogemos Todos los ndices y Botn para altas.
04
Mens
Ahora vamos a crear el men para clientes, para lo que usaremos un men
del tipo Arbolado. Entramos en la galera de objetos y pulsamos sobre el
icono de men arbolado, apareciendo la ventana de edicin de mens arbolados. En ella le ponemos el nombre Clientes. sta ser la raz del men
de Clientes.
Desarrollo bsico
de una aplicacin
346 347
VELAZQUEZ VISUAL
Almacn de objetos
ADVERTENCIA
Si al pulsar este botn nos
da un mensaje de error,
entonces debemos buscar
en el disco local la carpeta
almacn (que por defecto
estar en c:\Archivos de
programa\Atica\Velazquez\Pr
ograma\Almacn).
Ejecutamos entonces la
opcin de men
Ver/Personalizar y en la
pestaa Entorno especificar
la senda del almacn.
Ahora vamos a trabajar con iconos en mens, y a usar el almacn de objetos. Pulsamos el botn
Almacn de objetos y escogemos tica/1. Bsico (Objeto nico)/Imgenes/Multi-iconos/Multi icono con opciones de men arbolado.
Elegimos Importar, y nos crea una carpeta, que borraremos despus de llevar los iconos a otra que llamaremos, por ejemplo, Recursos.
04
Con esto ya tenemos iconos para suministrar al men arbolado. Pulsamos
el botn
rbol/Iconos y seleccionamos el que acabamos de importar.
Usaremos el primer icono para la opcin de men Nuevo Cliente, el segundo para bsquedas en clientes, el tercero para listados, etc.
Desarrollo bsico
de una aplicacin
rbol/Iconos
Aadir
Icono de men
348 349
Aadir
Icono anterior/siguiente
VELAZQUEZ VISUAL
Pulsamos el botn
para crear la opcin de nuevo cliente. Aparece entonces la ventana propiedades de men, en la que escribimos Nuevo cliente como Ttulo opcional, como pistola seleccionamos la opcin Formulario
(Alta), y como bala el formulario de CLIENTES.
Icono de alfa
Icono de carpetas
Icono de bsqueda
04
Tareas
Rejilla
Para Tareas ya tenemos creada una rejilla que usamos en el formulario de
Clientes. Ahora vamos a crear una especfica que usaremos para ver las tareas.
Vamos a la carpeta de rejillas de Tareas y creamos una rejilla visor de tablas
con los campos que nos interesen, por ejemplo: Fecha, Hora de Inicio y Fin,
Tipo de Tarea y Cliente. Podemos crearla con el asistente como en anteriores ocasiones, o podemos copiar y pegar la que ya tenemos, de tal manera que nicamente tenemos que alterar un poco la ya creada. Cambiamos
primero el identificador y llamamos a la rejilla TAREAS, pues va a ser la principal que usemos para ver tareas. Entramos en ella y seleccionamos Descripcin en la cabecera y cambiamos el campo al que se refiere por el Nombre de Cliente.
Desarrollo bsico
de una aplicacin
350 351
VELAZQUEZ VISUAL
04
Desarrollo bsico
de una aplicacin
352 353
VELAZQUEZ VISUAL
Tal y como lo tenemos ahora, slo la columna que hemos seleccionado actuar de esa manera, pero con ayuda de los botones
Copiar condiciones colores-fuente y
Pegar condiciones colores-fuente podemos llevarlas al resto de columnas. Pulsamos el botn de copiar, seleccionamos la columna que tiene las condiciones y las pegamos en el resto con el botn correspondiente.
Formulario
Ahora vamos a disear el formulario que asignaremos a las dos rejillas que
tenemos creadas para TAREAS. ste va a ser ms complejo que el que hicimos para CLIENTES, ya que lleva muchos ms datos, de ah que usemos
el separador de pestaas. En una de ellas pondremos los datos sobre la
configuracin de la tarea, en otra la descripcin larga y, en la ltima, la descripcin de la realizacin.
04
Pero adems, para que el usuario sepa que esos campos no son editables,
pondremos como color de fondo de los controles el que tenga como fondo
3D de Windows. Para ello vamos a la pestaa de Aspecto y en Fondo y Fondo Foco, cambiamos el color eligiendo Modo Windows y Objetos 3D: Fondo.
Desarrollo bsico
de una aplicacin
354 355
VELAZQUEZ VISUAL
Tecla aceleradora
04
En este subformulario incluiremos los controles para editar el Cliente, el Tipo de tarea, la Descripcin corta, Fecha, Fecha hasta, Das de duracin,
Avisar a falta de, Hora de inicio y finalizacin.
Desarrollo bsico
de una aplicacin
356 357
Caja de grupo
Edicin
VELAZQUEZ VISUAL
04
En la pestaa Comando, elegimos como funcin a disparar Localizar maestro, especificamos en qu campo buscamos (CLIENTES), que es el que nos
enlaza con la tabla correspondiente, y finalmente, el localizador que usamos, CLIENTES, creado anteriormente.
Desarrollo bsico
de una aplicacin
358 359
VELAZQUEZ VISUAL
Podemos aadir una tecla aceleradora, igual que en el caso de los botones
adelante y atrs del formulario, que puede ser F5.
En la pestaa General, aadimos como texto contenido y texto tool tip Localizar. El texto Tool Tip es el que aparece en el botn desplegable indicndonos qu hace la opcin.
04
Desarrollo bsico
de una aplicacin
Estos tres botones desplegables nos sirven tambin para el control de edicin de campo del nombre de Clientes, as que los copiamos y pegamos a
continuacin de ste. Tenemos que marcar, en la pestaa Estilos de propiedades del control, la opcin de Men desplegable para que asuma los
botones.
Por ltimo, al igual que habamos hecho con el formulario de clientes cambiamos el color fondo foco, para que al editarlo aparezca reflejado. Esto mismo lo hacemos en todos los controles que creemos en los subformularios.
Combo box
360 361
VELAZQUEZ VISUAL
como en el caso anterior. Este tipo de control se usa cuando tenemos una
tabla esttica, como es el caso, y para asignarle el campo debemos de seleccionar, dentro de la pestaa General de propiedades, el campo TIPO-TAREA que enlaza con la tabla esttica. De esta manera, en ejecucin, el control nos mostrar la lista de tareas para poder elegir la que nos interese.
04
Controles de los campos Fecha, Fecha hasta, avisar cuntos
das antes, das de duracin y permanente; hora de inicio y
hora de finalizacin
Estos cinco controles los vamos a agrupar tambin mediante una caja;
creamos esta ltima y la llamamos Calendario. Dentro de ella colocaremos
los cuatro controles de edicin de fechas y das.
Desarrollo bsico
de una aplicacin
362 363
Calendario
VELAZQUEZ VISUAL
botn
Calendario, que nos permite asignar ste a un campo o variable
tipo fecha, y ajustamos el fondo del formulario al tamao de ste.
04
Desarrollo bsico
de una aplicacin
Nos falta por tanto el control para activar Permanente. En este caso usamos
un control de casilla de verificacin
check box. Lo colocamos a un lado
en la caja y elegimos el campo PERMANENTE (veremos que nicamente
nos aparecen aquellos campos que sean booleanos) y el texto que queremos que aparezca. El ttulo por defecto viene a la derecha de la casilla, pero podemos cambiarlo en la pestaa Aspecto.
Check box
ADVERTENCIA
Creamos etiquetas para cada uno de los controles creados aprovechando los Textos estticos, recogiendo los nombres de los campos directamente.
Ya vimos que la casilla de verificacin de PERMANENTE serva para hacer
que una tarea estuviera activa todo el ao. Para que esto sea as no hemos
de hacer nada ms, ya que el contenido inicial de Fecha hasta es modificado cuando marcamos permanente: fDecidirDato( %PERMANENTE%, fFecha( 31, 12, fAo( %FECHA% ) ), %FECHA% + %DIAS% ). Este contenido
inicial no se almacenar hasta que aceptamos el formulario; hasta que lo
hagamos, si marcamos o desmarcamos PERMANENTE, el valor que muestre Fecha Hasta se refrescar, mostrando el de final de ese ao (si marcamos la casilla), o el de la fecha del momento ms el nmero de das que introduzcamos (si no la marcamos). Esto se debe a que Velzquez Visual calcula y presenta en todo momento el valor que toma un contenido inicial
hasta el momento en que aceptamos, a partir del cual el contenido inicial
no variar aunque editemos de nuevo el campo, a no ser que en la frmula
incluya otros campos.
Ya slo nos quedan los controles de horario que agruparemos en una caja
que llamaremos Horario. Creamos dos controles de edicin de campo a los
que les aadimos la opcin de botones arriba/abajo de la pestaa Ms estilos, y las etiquetas para ellos.
Un campo frmula se
actualiza automticamente
con los datos que hay en
todo momento, es decir, si
creamos una tarea, la
editamos de nuevo y
modificamos en ejecucin
alguno de los componentes
de esa frmula numrica, el
resultado cambia. Sin
embargo, en un campo con
contenido inicial, una vez
que ste es introducido y
aceptado no cambia, a no
ser que volvamos a editarlo y
cambiemos el valor de
alguno de los campos que
influan en su valor. Pero si el
contenido inicial est
compuesto nicamente por
constantes, funciones o
variables, no se recalcular
el contenido inicial al
editarlo. En el caso de un
contenido inicial en el que la
frmula incluya campos,
funciones, variables
globales, etc., al editar la
ficha recalcular tambin las
funciones y tendr en
cuenta los valores que
tengan las variables en ese
momento. Si no hay campos
en la frmula del contenido
inicial, las funciones o
variables no sern
recalculadas y el campo
mantendr su valor.
364 365
VELAZQUEZ VISUAL
Tenemos que acordarnos tambin de poner como color de fondo foco aquel
que hallamos elegido.
Objeto texto
Creamos otro subformulario al que pondremos como identificador TAREASDESC-LARGA, asignado a la tabla TAREAS con el nombre &2. Descripcin
larga. Al entrar, borramos de nuevo los botones. Aqu, nicamente vamos a
colocar un control de objeto texto, pulsando el botn correspondiente
.
04
En la pestaa General le asignaremos el campo DESC-LARGA (en la lista slo nos aparecern los objetos tipo texto pertenecientes a la tabla TAREAS),
y pondremos como tamao ambos variables en la pestaa de Estilos.
Usamos el control de casilla para marcar la tarea como realizada, y dos controles de edicin de campo para Fecha realizado y Hora realizado que, como no van a poder ser editados, les activamos Slo Lectura en la pestaa
de Estilos y cambiamos el color de fondo y fondo foco por el de fondo 3D
de Windows.
Desarrollo bsico
de una aplicacin
366 367
VELAZQUEZ VISUAL
Subir y bajar
Bsquedas
Ahora vamos a crear las bsquedas que necesitamos. Por un lado estn las
bsquedas sencillas, Tareas por cdigo, por nombre, por palabras o por trozos de palabras, que hacemos igual que para clientes. Construimos tambin el localizador, incluyendo los cuatro ndices que usamos para las bsquedas anteriores.
En la exposicin del enunciado ya comentamos que queramos bsquedas
por la descripcin corta de la tarea, ahora bien, como el campo NOMBRE
de la tarea es la Descripcin (lo que hasta ahora estamos llamando Descripcin corta), las bsquedas recin creadas son en realidad las bsquedas por la descripcin corta.
04
Pero necesitamos tambin una lista de las tareas pendientes, otra de las tareas a realizar en el da, otra entre fechas y tambin habr una bsqueda
avanzada en la que podamos discriminar por Cliente, si la tarea est realizada o no y entre fechas. Pongmonos con ellas.
Bsqueda de pendientes
Para esta bsqueda usamos como componente el ndice PDTES-FECHA
que creamos anteriormente, y que nos da una lista de todos aquellos registros que tengan a cero la casilla de REALIZADO, es decir, que estn pendientes.
En Modo de buscar, pondremos todo el fichero ya que el ndice, como dijimos, slo recoge las que estn pendientes, luego no tenemos que discriminar nada ms.
Desarrollo bsico
de una aplicacin
368 369
VELAZQUEZ VISUAL
As pues, buscamos entre lmites y usamos la funcin fHoy() que nos devuelve la fecha del momento, ponindola como lmite inicial y final. De igual
04
manera podramos concretar la hora, desde 00:00:00 hasta 23:59:59,
pero en este caso no hace falta. Si ponemos un lmite final, pero no el inicial, nos buscar todas aquellas tareas que tengan una hora de inicio anterior, con lo que nos aparecern todas las del da.
Desarrollo bsico
de una aplicacin
370 371
VELAZQUEZ VISUAL
De igual manera creamos otra para Fecha hasta, con identificador BUS-FECHA-HASTA. Podemos ordenar las variables que creamos con carpetas, tal
y como hacemos con los objetos visuales.
04
En el formulario de bsqueda incluiremos dos controles de edicin de campo, que servirn para cada una de las variables, con sus respectivos controles de calendario, asignados cada uno a una variable.
Desarrollo bsico
de una aplicacin
372 373
Variables globales
VELAZQUEZ VISUAL
Usaremos para resolver la bsqueda el ndice que tenemos creado de FECHA. Pero ste tiene dos componentes: FECHA y HORA-INICIO y debemos
resolver ambos. Pulsando doble clic sobre FECHA, usamos como dato lmite inicial la primera de las variables que creamos: $BUS-FECHA-DESDE$
(un identificador, como ya sabemos, entre smbolos $ es una variable) y como dato lmite final la otra: $BUS-FECHA-HASTA$. Para ello podemos usar
el asistente de frmulas que, a travs de la opcin del men
Variables
globales (F6), nos permite escoger las variables de una lista.
04
Desarrollo bsico
de una aplicacin
374 375
VELAZQUEZ VISUAL
Velzquez Visual permite en las bsquedas con lmites hacer dos cosas: podemos poner un lmite inicial y uno final, o bien poner slo uno de los dos.
En este ltimo caso buscar todos aquellos hasta el que pongamos como
lmite final o todos aquellos desde el que demos como lmite inicial.
Nosotros usaremos 23:59:59 como contenido inicial del campo para lmite final, lo que har que busque todos los que tengan una hora anterior a
esa (que sern todos los de ese da).
Con esto ya tenemos preparada la bsqueda entre fechas. Posteriormente,
en ejecucin, podremos seleccionar en el formulario de bsqueda las fechas que marcan los lmites inicial y final de sta.
Bsqueda Avanzada
En la exposicin de la aplicacin habamos hablado de una bsqueda avanzada en la que pudiramos escoger un cliente, el estado de la tarea (realizada, pendiente) y entre qu fechas.
Crearemos un formulario para bsqueda con identificador TAREAS-AVANZADA, con nombre Bsqueda avanzada de tareas asignado a la tabla TAREAS. Podemos copiar los controles para cliente que creamos en el formulario de edicin de una TAREA. Junto con los controles tambin traemos los
botones desplegables que tenamos hechos. Tambin podemos aprovechar
los controles que usamos en la bsqueda entre fechas, tanto los de tipo Calendario como los de edicin, y las mismas variables que usamos antes.
Como no hemos visto procesos, no podemos inicializar las variables para
limpiar los valores que hayamos usado en bsquedas anteriores. Para solucionar este problema hemos de crear una casilla de verificacin en la que
indicamos si vamos a buscar entre fechas o no. La casilla ir asociada a una
variable de tipo booleano que llamaremos Bsqueda entre fechas, con identificador BUS-ENTRE-FECHAS y persistencia en memoria independiente de
cada tarea en 2 plano. A la hora de realizar la bsqueda comprobaremos
que la casilla asignada a la variable est activada. A la casilla de verificacin
le ponemos como ttulo Filtrar el perodo de fechas seleccionado.
04
Desarrollo bsico
de una aplicacin
TRUCO
Ya tenemos preparados los controles para cliente y entre fechas. Nos falta
nicamente el estado de la tarea. Para ello usaremos botones de radio y una
variable. La variable ser de tipo numrico, con identificador TAREAS-ESTADO, y de nombre tareas estado: 0-Todas, 1-Pendientes, 2-Realizadas,
que indica los estados que puede tener. Tendr persistencia en memoria independiente de cada tarea en 2 plano, y longitud 1 byte.
376 377
VELAZQUEZ VISUAL
Los botones de radio tendrn asignados esta variable. Como texto Todas,
Pendientes y Realizadas, y como dato fijo 0, 1 y 2, respectivamente. De este modo, si marcamos el botn de radio Todas, le estaremos pasando a la
variable el valor 0, lo que se traduce en que la bsqueda la llevar a cabo
sobre todas las tareas (estn realizadas o no).
Agrupamos los controles en una caja y la titulamos Estado. Tenemos entonces terminado el formulario de bsqueda avanzada.
04
Desarrollo bsico
de una aplicacin
378 379
VELAZQUEZ VISUAL
El orden de los componentes de la bsqueda es importante tambin. En este caso el orden sera: CODIGO, FECHA, PDTES-FECHA (Cruzar), PDTESFECHA (Quitar), CLIENTE. Sabemos qu orden deben llevar CODIGO y PDTES-FECHA, sin embargo, no importa tanto el orden de FECHA y CLIENTE
al ser el modo de Mezcla cruzar o quitar. El problema surge si tenemos co-
04
Desarrollo bsico
de una aplicacin
mo modo de mezcla aadir, caso en el que hay que tener cuidado dnde se
ponen los componentes.
Con esto terminamos las bsquedas. Podramos crear un localizador, pero
de momento no vamos a usarlo.
Agendizador
Vamos a usar un elemento nuevo: el agendizador. Es muy fcil de configurar al estar especialmente diseado para el caso que nos ocupa, una agenda. El funcionamiento es muy sencillo: al seleccionar una fecha en el calendario del agendizador, sta ser asignada a una variable de tal manera que
presentar las tareas cuyo intervalo (fecha de inicio - fecha de fin) contenga la fecha que hemos marcado. En una rejilla mostraremos las tareas junto con los das que faltan para terminar la tarea (contando desde el da seleccionado), dato que se calcular en funcin del valor que toma la variable
del agendizador, y que usamos en el campo tipo frmula numrica: Das que
faltan ((%FECHA-HASTA%-$AGENDA-FECHA$)+1). Por lo tanto ser dinmico, ir cambiando segn el da que seleccionemos en el calendario de la
agenda. Aadiremos otra funcionalidad ms a la rejilla, de modo que sta
presentar en rojo las tareas cuya fecha entre dentro del perodo de los
das de aviso, y en verde las permanentes.
Comenzaremos entonces creando la rejilla. Para ello podemos usar la que
ya tenemos: TAREAS, copiando y pegando, o hacer una nueva. Como en
realidad lo que haremos ser aadir una o dos columnas y cambiar condiciones de texto y color, usaremos la que tenamos. Le ponemos como identificador TAREAS-AGENDA y como nombre Agenda.
Pulsando el botn
Nueva columna, aadimos los campos que nos faltan: Fecha Hasta, Das que faltan y Descripcin corta. Modificamos las cabeceras para poner las etiquetas que nos parezcan ms convenientes, y
ajustamos los anchos de las columnas, mirando aquellas que nos interese
que tengan ancho variable.
Una vez hecho esto, pulsamos en la cabecera de una cualquiera de las columnas para editar nuevas condiciones de texto y color. Como habamos
Nueva columna
380 381
VELAZQUEZ VISUAL
comentado, queremos que nos aparezcan con fondo rojo aquellas tareas
que entren en el perodo de aviso que marcamos, y con fondo verde las que
sean permanentes. Pulsamos Otros en la caja de Fuente y color y aadimos
a la condicin ya establecida, por la que si una tarea est realizada se ve en
un color ms claro (%REALIZADA%), las nuevas condiciones.
Mediante la primera condicin nos avisar con unos das de antelacin de
la finalizacin de la tarea, y consiste en que el nmero de das que faltan para que finalice la tarea sea menor o igual que los das de aviso. Como en Velzquez Visual no existen los smbolos , menor o igual, ni , mayor o igual,
usamos lgica booleana resultando que para que nos avise los das que
faltan no han de ser mayores que los das de aviso, esto es: !( %DIAS-FALTAN% > %DIAS-AVISO% ). Insertamos la condicin y elegimos un fondo rojo y un color claro para el texto.
Para las tareas que son permanentes, al igual que hicimos con las realizadas, usamos el campo booleano como condicin, de manera que si es verdadero, es decir, igual a uno, entonces se activarn los colores condicionados. Elegimos para ste el color verde de fondo y un color tambin claro para el texto.
Ahora vamos con el agendizador. Lo seleccionamos en la Galera de objetos y ponemos como identificador TAREAS, as como lo asignamos a la
misma tabla y ponemos como nombre Tareas. Tenemos dos posibilidades
con el agendizador: usar un intervalo de fechas (ambas inclusive) o fecha
nica. Trabajaremos en este caso con el primer modo, con lo que nos aparecern las tareas en cuyo intervalo de fechas se encuentra la fecha que
seleccionamos en el calendario (en el segundo caso, slo nos apareceran
las tareas en que coincida la fecha de inicio con la que estemos mirando).
El campo fecha inicial es el que creamos con nombre FECHA, que es la fecha en que se inicia la tarea, mientras que campo fecha final es FECHAHASTA, el da que finaliza la tarea. Usaremos la rejilla que acabamos de
crear y variable fecha seleccionada es la que creamos para el campo tipo
frmula numrica: Das que faltan y la que har dinmicos los resultados en
la rejilla. Luego podemos cambiar el tipo de letra y los colores de texto y
fondo.
04
Men
Ahora vamos a hacer el men que lance todas las opciones que hemos
creado para la tabla TAREAS. Nos situamos en la carpeta Men de Tareas y seleccionamos el objeto Men arbolado de la Galera de Objetos.
Como siempre, le ponemos el nombre Tareas y como identificador TAREAS,
y en rbol/Iconos seleccionamos el mismo conjunto de multi-iconos que
habamos usado para Clientes (slo nos aparecer ese).
Desarrollo bsico
de una aplicacin
382 383
VELAZQUEZ VISUAL
Al igual que hicimos en el men de Clientes, aadimos una carpeta subgrupo de men, con la caracterstica de Abrir al inicio y vamos aadiendo las
distintas opciones con su icono correspondiente. Aadimos en primer lugar
el alta de una tarea con formulario y las bsquedas. En estas ltimas, vamos a contar con una opcin ms.
Adems de la rejilla resultado de la bsqueda, vamos a presentar un formulario en el que podamos ver un registro determinado de la tabla y editarlo. Este formulario ser el que hemos creado para Tareas. Para ello, en
las propiedades de una opcin de men, adems de la pistola que dispare la opcin de bsqueda, y escoger sta en la primera bala, activamos la 2 bala y escogemos formulario. Al pulsar en Cambiar 2 bala, nos
aparecern las opciones (todos los formularios y subformularios de la tabla Tareas) y escogemos TAREAS, que es el que habamos creado para
editarlas.
04
De esta manera, con la primera bala abre la rejilla, y con la segunda bala nos
abre adyacente el formulario.
Nos queda por incorporar un ltimo elemento: el agendizador. Para disparar esta opcin tenemos que hacer uso de la pistola Agenda tabla completa, y como bala Agendizadores el que creamos TAREAS.
ste, al contrario que los anteriores, no admite una segunda bala, por lo que
no podemos ver el formulario adyacente, pero s podemos editar los registros por medio de ste.
Desarrollo bsico
de una aplicacin
384 385
VELAZQUEZ VISUAL
Men General
Por ltimo slo nos queda crear el men general por el que accederemos
tanto al men de Clientes como al men de Tareas.
Velzquez Visual arranca siempre en un men tipo formulario denominado
AUTOEXEC, as que sobre la base de ste vamos a montar el men general.
Creamos en primer lugar una carpeta que llamaremos $Comunes, en la que
irn todos los objetos generales de la aplicacin. Sabemos adems que el
almacn no repetir objetos que estn en esa carpeta.
Al editar las propiedades del men tipo formulario, veremos que ste no tiene que ser asignado a ninguna tabla, al igual que los mens arbolados. Esto es as porque tiene que lanzar objetos asignados a distintas tablas.
En la carpeta subgrupo Men general incluiremos dos opciones con pistola Incluir Carpetas Men, una para cada men. Esto har que en el men
general arbolado aparezcan como ramas de ste los mens de Clientes y
Tareas.
En GENERAL-ARBOLADO aadiremos la segunda carpeta subgrupo, que
ser Salir, con ttulo opcional Cerrar la aplicacin y pistola: Cerrar la aplicacin.
04
Desarrollo bsico
de una aplicacin
Si activamos Abrir al inicio, tendremos esta opcin abierta al abrir la aplicacin. Por ltimo, vamos a montar el men arbolado sobre el men tipo formulario.
Podemos aadir algn dibujo para hacer ms atractivo el men. Para ello
cerramos el formulario y creamos un objeto dibujo seleccionndolo en la
galera de objetos. Podemos, o bien introducir un dibujo gif (que puede ser
Men arbolado
386 387
VELAZQUEZ VISUAL
animado), o cualquier otro formato (dibujo). Sea del tipo que sea funciona
igual. Elegimos crear el objeto dibujo, y cuando entremos en la pantalla de
edicin podemos pegar uno que tengamos en memoria o escoger en el men Edicin/Pegar desde uno que tengamos en el disco duro.
Ese dibujo lo podemos aprovechar para que aparezca cuando iniciamos la
aplicacin. Para ello vamos al men Comunes/Convertir en/Splash quedando renombrado y con esa funcin.
Dibujo o Gif
Texto esttico
De esta manera ya tenemos completo el men. Ahora salimos, y convertimos este men tipo formulario que acabamos de terminar en el men de
autoarranque. Para ello vamos a la barra de men y escogemos la opcin
Comunes/Convertir en/Men inicial, que sera lo mismo que renombrarlo
como AUTOEXEC.
Con esto damos por finalizada la aplicacin. Pasamos a hora a ejecutarla.
Ejecucin
Nada ms arrancar la aplicacin, aparece el men tipo formulario con el
men arbolado incrustado, adems del dibujo y el ttulo que hemos incluido.
04
Desarrollo bsico
de una aplicacin
388 389
VELAZQUEZ VISUAL
Creamos varias tareas para este cliente y algn cliente ms, para luego realizar bsquedas por trozos o palabras de la descripcin:
04
Para todas estas bsquedas nos mostrar la rejilla con el formulario de edicin adyacente:
Desarrollo bsico
de una aplicacin
390 391
VELAZQUEZ VISUAL
Situados en la rejilla podremos movernos de una tabla a otra con ayuda del
navegador y lanzar el resto de funciones que Velzquez Visual nos da por
defecto.
El agendizador nos mostrar el calendario junto a la rejilla de datos:
05
Inspectores
05
Inspectores
Los Inspectores son unas herramientas muy prcticas a la hora de programar en Velzquez Visual. Los hay de anlisis de objetos, de localizacin de
los mismos y, por ltimo, de errores. A continuacin iremos vindolos uno
por uno.
5.1
De tablas y campos
(F10)
Este inspector sirve para ver y localizar los campos que contiene una tabla.
Se muestra una ventana en la que se incluye un control para seleccionar la
tabla y otro control que muestra los campos que contiene la tabla seleccionada. El campo lo elegimos en funcin del nombre que le pusimos al crearlo (no del identificador con el que lo referenciamos).
Haciendo doble clic sobre un campo, o seleccionndolo y pulsando el botn Aceptar, Velzquez se posicionar sobre l, es decir, abrir en la zona
del Editor de Proyectos de Estructura de datos la tabla correspondiente, y
se posicionar sobre el campo elegido.
Inspector de campos
394 395
VELAZQUEZ VISUAL
Por defecto, la tabla que se presenta inicialmente en la pantalla de bsqueda si no hay ninguna seleccionada es la primera que se encuentre en el panel izquierdo del Editor, si est seleccionada alguna presentar esa. Pero si
se ejecuta, por ejemplo, desde el editor de informes o el editor del formularios, es decir, editando un objeto, se presentar la tabla asociada a dicho
objeto y los campos correspondientes a esa tabla.
Dnde se usa
5.2
(F9)
Con este inspector podremos localizar en qu objetos se utiliza el objeto visual seleccionado. Podemos utilizarlo tanto en el panel izquierdo con las tablas de datos, campos, enlaces histricos, ndices y las variables globales,
como en el panel derecho con los objetos visuales creados.
Panel izquierdo: marcando una tabla de datos y utilizando esta opcin, el programa mostrar una ventana en la que se ver qu objetos
del panel derecho la utilizan, y seleccionando uno de ellos nos lo localizar automticamente en el panel derecho o en el izquierdo si es
una tabla.
05
Si lo que seleccionamos es un campo, un ndice o un enlace histrico, podremos ver en qu tablas del panel izquierdo y en qu objetos visuales del panel
derecho se usa, y al seleccionarlos en qu parte en concreto de esos objetos.
Inspectores
396 397
VELAZQUEZ VISUAL
Estos objetos estarn agrupados segn del tipo que sean. Seleccionando un objeto y haciendo doble clic sobre l, o pulsando el botn Localizar, Velzquez se posicionar sobre l.
Panel derecho: seleccionando un objeto determinado, el programa nos
mostrar una ventana con el nombre de todos los objetos visuales que
lo utilizan y, al igual que en los anteriores inspectores, en qu parte concreta del objeto. Marcando el objeto deseado y haciendo doble clic sobre l, o pulsando el botn Localizar, Velzquez nos lo localizar automticamente en el panel derecho.
05
5.3
Qu objetos usa
Este inspector se usa para objetos visuales del panel derecho del Editor.
Sirve para localizar los objetos que utiliza el objeto seleccionado. Marcando un objeto del panel derecho el programa mostrar una ventana con el
nombre de todos los objetos visuales que utiliza. En la ventana inferior,
cuando seleccionamos uno de los objetos, aparece informacin acerca del
uso que se hace del objeto. Seleccionando el objeto deseado y haciendo
doble clic sobre l, o pulsando el botn Localizar, Velzquez Visual lo localizar automticamente en el panel derecho.
Inspectores
Qu objetos usa
398 399
Objetos no usados
VELAZQUEZ VISUAL
5.4
Objetos no usados
Presenta una lista con los objetos, tanto pblicos como privados (en caso de que en sus propiedades exista la posibilidad de definir estos estilos), que no estn siendo utilizados por ningn objeto del proyecto. Esta
opcin es muy til para eliminar objetos que no son necesarios en el proyecto. Debemos tener en cuenta que en el proyecto pueden existir objetos tales como informes, procesos, rejillas, etc. que sean pblicos, lo que
quiere decir que, aunque no estn siendo utilizados directamente por otro
objeto, han sido creados y estn disponibles para que el usuario final pueda utilizarlos en tiempo de ejecucin. Por eso, recomendamos que antes
de proceder al borrado de un objeto debemos asegurarnos de que sea
realmente innecesario.
05
5.5
(Ctrl + F9)
Permite localizar objetos por su tipo (formularios de edicin, mens tipo formulario, bsquedas). Se muestra un cuadro de dilogo dividido en dos
partes: en la izquierda se muestran todos los tipos de objetos de Velzquez
y, en la derecha, todos los objetos del tipo del que est seleccionado utilizados en el proyecto actual. Tambin nos da cierta informacin de cada objeto. La informacin variar en funcin del tipo de objeto seleccionado. Para saber qu objetos de un cierto tipo estamos utilizando en un proyecto,
basta con marcar en la parte izquierda del cuadro de dilogo el tipo de objeto para que en la parte derecha se muestren todos los existentes en dicho
proyecto.
Inspectores
400 401
Localizar objeto
VELAZQUEZ VISUAL
5.6
Objetos de un color
(F3)
05
Inspectores
5.7
Contenido de frmulas
402 403
Funciones de frmulas
Variables globales
Variables locales
Lupa
Objetos con errores
VELAZQUEZ VISUAL
En el primer control se escribir la expresin a buscar. Los tres primeros botones de la barra de herramientas permiten seleccionar funciones de frmulas
, variables globales
y variables locales
. Una vez escrito el
contenido a buscar en las frmulas del proyecto, pulsamos el botn de la
lupa
de la barra de botones de este inspector. En el caso de haberse encontrado algn objeto, para localizarlo hacemos doble clic sobre l con el
botn izquierdo del ratn, o lo seleccionamos y pulsamos el botn Localizar objeto en el cuadro de dilogo del inspector. Al igual que en los otros
inspectores, adems del objeto en el que aparece la frmula, nos dice en
qu parte de este objeto aparece.
5.8
05
Resumen
Velzquez Visual cuenta con unas herramientas que nos permiten analizar y
localizar objetos, as como detectar errores; son los inspectores.
Inspector de tablas y campos: para ver y localizar los campos que contiene
una tabla.
Dnde se usa el objeto: localiza en qu objetos se utiliza el objeto visual seleccionado.
Qu objetos usa: localiza los objetos que utiliza el objeto seleccionado.
Objetos no usados: presenta una lista con los objetos que no estn siendo
utilizados por ningn objeto del proyecto.
Por tipo de objeto: permite localizar todos los objetos del tipo seleccionado.
Objetos de un color: localiza objetos por el color de su identificador.
Contenido de frmulas: busca objetos en los que se utilice una frmula determinada.
Errores del proyecto: localiza los errores del proyecto, indicando en qu objetos hay errores y cul es la naturaleza de stos.
Inspectores
06
Asistentes
06
6.1
Asistentes
Operadores
Funciones (F4).
Funciones
Funciones de dll.
Funciones de dll
408 409
Campos
Variables Globales
VELAZQUEZ VISUAL
Campos (F5).
Variables Globales (F6).
Variables Locales
Deshacer
Verificar
Ayuda
Verificar (F9): este botn comprueba que la sintaxis de la frmula sea correcta. En caso contrario presentar una ventana con el error cometido.
Tambin se verifica al aceptar la frmula con el botn OK o al pulsar intro.
Aceptar
Ayuda (F1).
Cancelar
Operadores
Pulsando el botn
operadores aparecer en pantalla un asistente en el
que podremos seleccionar el operador necesario de entre los siguientes:
OPERADORES
06
4>2
condicin cierta.
4 < (2+2)
condicin falsa.
4 = (2+2)
condicin cierta.
4!3
condicin cierta
Asistentes
Las funciones
Pulsando el botn
funciones, aparecer el asistente de funciones. En el
anexo II del manual encontraremos un listado con todas las funciones del
Asistente de edicin de frmulas de Velzquez Visual. El asistente para la
edicin de frmulas puede volver a abrirse por cada parmetro de la funcin, de esta manera resultar ms fcil su composicin.
Funciones
410 411
VELAZQUEZ VISUAL
06
Asistentes
Funciones de dll
Funciones proceso
412 413
VELAZQUEZ VISUAL
Una funcin habitualmente usa parmetros. stos aparecern entre parntesis tras el nombre de la funcin, por ejemplo: FuncionNombre( parametro1,
parametro2, parmetro3 ). Una vez seleccionada debemos sustituir las cadenas parmetro1, parmetro2, parmetro3 por los parmetros que vayamos a
suministrar a la funcin, stos podrn ser constantes o variables, por ejemplo:
Constantes: FuncinNombre( 12, 1, 4 )
Variables: FuncinNombre( %CAMPO-1%, $VARIABLE-1$, VARIABLE1 )
Para ello hemos de seleccionar la funcin en el Asistente de funciones proceso, y mediante el Asistente de edicin de frmulas le pasamos los parmetros necesarios.
06
Asistentes
%CLIENTE.POBLACION.PROVINCIA.NOMBRE%
Todo el texto va entre smbolos de tantos por ciento, mientras que los campos enlazados se separan con un punto (.). Para Velzquez Visual el campo
Nombre de la tabla de datos enlazada, es tratado como si fuera de la propia tabla de datos. No hay limitacin en el nmero de enlaces.
Tambin podemos movernos por los campos enlazados pinchando en el
botn campos
, de modo que se presentar una ventana en la que podemos seleccionar el campo a incluir en el asistente sin necesidad de escribirlo a mano.
Campos
Al pulsar las letras del teclado el foco se situar en el campo que comience por las mismas. En el caso de la figura anterior, si pulsramos P, el foco
se situara sobre el campo Perfil.
ADVERTENCIA
Esta operacin slo puede
ser utilizada en un Proceso.
414 415
VELAZQUEZ VISUAL
tabla PROVINCIAS con la funcin Guardar ficha, utilizando la variable ID_FICHA. Desde una tabla no enlazada podemos acceder al nombre del pas de
la provincia de la ficha que hemos guardado; la sintaxis sera:
:ID_FICHA%PAIS.NOMBRE%
Si existen los mismos identificadores para una ficha guardada y una tabla
de datos, tendr prioridad el identificador de la ficha.
Variables globales
Variables locales
Por ejemplo: para hacer un clculo con la variable global IVA y el campo
PRECIO, escribimos en la frmula el texto siguiente: (%PRECIO% * $IVA$)
/ 100
Advirtamos que el identificador del campo va entre tantos por ciento (%),
mientras que el de la variable global va entre smbolos de dlar ($).
Es posible combinar campos de una tabla de datos enlazada con variables
globales. Por ejemplo, para hacer un clculo con la variable global IVA y el
campo PRECIO de la tabla de datos enlazada ARTICULOS, escribimos en
la frmula el texto siguiente: (%ARTICULOS.PRECIO% * $IVA$) / 100
06
Asistentes
Constantes
Las constantes tienen un valor fijo predefinido por el programador. Dependiendo del tipo constante se especificarn de una u otra forma:
Constantes numricas: se escribir el nmero, precedido por el signo si es negativo, y utilizando el punto (.) como separador decimal. Por
ejemplo, para pasar a una frmula el nmero -1.231,35 hemos de escribir: -1231.35
Constantes alfabticas: se escribir el contenido entrecomillado. Por
ejemplo, si se desea tener el texto Pesetas como constante, la frmula
sera: Pesetas.
Constantes de tipo hora: su contenido se especificar separando las horas, minutos y segundos por un espacio en blanco o un carcter como
puede ser un punto (.), dos puntos (:), etc. Por ejemplo para especificar
las 3:04:30 como constante, la frmula sera: 3 4 30 o 3:4:40 o 03:04:40.
Constantes de tipo fecha: su contenido puede especificarse de varias
formas. Por ejemplo, para la fecha 1-enero-1999 podemos escribir como frmula: 010199 o 1-1-1999 o 1-ene-1999.
Constantes de tipo booleano: su contenido puede especificarse con un
nmero o con un texto: 1 S, 0 No.
Variables de sistema
416 417
VELAZQUEZ VISUAL
Subcadenas de formato
Las subcadenas de formato ajustan la visualizacin de la informacin (por
ejemplo, forzar a que un campo numrico se visualice con cinco caracteres,
alineado a la derecha y rellenando con ceros por la izquierda, como 00021).
Cmo se pueden usar desde el Asistente de edicin de frmulas? Supongamos una lnea de proceso en la que mandamos un mensaje que incluye
el contenido de un campo del proyecto (no nos preocupemos por no haber
visto an los procesos; esto es solo un ejemplo).
06
Asistentes
418 419
VELAZQUEZ VISUAL
06
Hora en una cadena de texto: cuando se pasa un dato de tipo hora a una
cadena de texto, se convierte automticamente en formato hh:mm:ss.
Por ejemplo: 12:15:33.
Hora en numrico: al pasar un dato de tipo hora a un campo o variable
numrico, este ltimo convierte la hora en segundos. As, por ejemplo:
10:44:01 pasa a ser 38641.
\b
\c
\f
\n
\r
\t
\v
Tabulador Vertical.
\\
Barra invertida.
Cuestiones
1. Supongamos una aplicacin en la que tenemos una tabla que contiene los campos valor1 y valor 2 (numricos). Tambin tenemos definidas dos variables globales: variable1 y variable2 (numricas).
Queremos que el contenido inicial del campo valor1 sea variable1 si
se cumple que valor2 > 10. En caso contrario el contenido inicial de
valor1 debe ser la variable2. Usar para ello la funcin DecidirDato
(dentro de la carpeta Varias).
2. Supuesto el siguiente esquema de tablas, cul sera la sintaxis para obtener el nombre de la regin a la que pertenece el lugar de inters en el que se encuentra la casa rural en curso?
Asistentes
420 421
VELAZQUEZ VISUAL
Resumen
Podemos utilizar frmulas en cualquier cuadro de edicin que admita expresiones de tipo frmula. Aunque se pueden introducir a mano se recomienda utilizar el Asistente para edicin de frmulas.
En las frmulas se admiten expresiones tanto aritmticas como booleanas.
Para construirlas disponemos de una lista de operadores, funciones, accesos a los campos de la tabla de datos en curso y a sus maestros, acceso a
las variables globales del proyecto, a las variables locales, a las variables del
sistema y a constantes.
En el asistente encontramos funciones numricas, de cadenas, de conversin de cadenas, de fecha, de hora, varias, Api de Velzquez, cliente - ser-
06
vidor, de cdigos, de juegos de caracteres, de directorios y cientficas, todas ellas con un asistente de funciones. Tambin podemos introducir funciones de dll y de procesos si stas han sido creadas en el proyecto.
Gracias a las subcadenas de formato podemos ajustar la visualizacin de la
informacin.
Cuando pasamos datos de un tipo a otro, Velzquez realiza una conversin automtica de los mismos. Podemos convertir: datos numricos en cadenas de texto, fechas en cadenas de texto, horas en cadenas de texto y horas en numrico.
Gracias a las secuencias de escape introducimos, en el interior de cadenas
de caracteres, algunos caracteres especiales que no se pueden representar mediante texto (retrocesos, comillas, saltos de pgina, etc.).
6.2
Asistentes
422 423
VELAZQUEZ VISUAL
Campos (F5).
Variables Globales
Variables Locales
Deshacer
06
Asistentes
Verificar (F9): este botn comprueba que la sintaxis de la frmula sea correcta. En caso contrario presentar una ventana con el error cometido.
Verificar
Ayuda (F1).
Ayuda
Aceptar
Cancelar
Cuestiones
1. En una aplicacin queremos ver un precio en tres monedas distintas: euros, libras y dlares. Para ello creamos un formulario en el que introducimos el precio en euros, de modo que los campos precio en libras y
precio en dlares sean de tipo frmula y se calculen directamente al meter el precio en euros. En el formulario queremos que aparezcan los tres
precios en tres cadenas de formato que nos indiquen la moneda que es.
424 425
VELAZQUEZ VISUAL
Campos
06
Asistentes
e
426 427
VELAZQUEZ VISUAL
06
6.2.4 Conversin automtica de datos y secuencias
de escape en cadenas de caracteres
Velzquez Visual realiza una conversin automtica cuando pasamos datos
de un tipo a datos de otro tipo (dato numrico en una cadena de texto, fecha
en una cadena de texto, hora en una cadena de texto, hora en numrico).
Por otro lado, para introducir en el interior de una cadena de caracteres algunos caracteres especiales imposibles de representar mediante texto, utilizaremos las secuencias de escape. En tiempo de ejecucin, stas se sustituyen por los caracteres adecuados.
Cuestiones
1. Escribir la subcadena de formato necesaria para ver el contenido de
un campo Precio con dos decimales, separador de miles, de modo
que aparezca pegado a la derecha y rellenando con ceros a la izquierda hasta llegar a diez caracteres.
2. Escribir la cadena de formato para que un campo Fecha de un registro, que contiene la fecha 2-8-1998 (domingo), se vea en una rejilla como La fecha es dom 2 de agosto de 98.
Resumen
Las cadenas de formato sirven para concatenar textos y campos sin utilizar
operadores aritmticos, formateando la visualizacin de la informacin. Se
pueden usar en rejillas, en tubos de lista, tubos de ficha, formularios, etc.
Para editar las cadenas de formato contamos con el Asistente para edicin
de cadenas de formato. Desde l tenemos acceso a campos de la tabla y
de tablas enlazadas, variables globales, variables locales y variables de sistema del proyecto.
Con las subcadenas de formato ajustamos la visualizacin de la informacin, para lo que disponemos de formateadores. Podemos escribirlas directamente o al seleccionar un campo, tanto en el asistente para la edicin
de frmulas como en el asistente para la edicin de cadenas de formato.
Velzquez Visual cuenta con formateadores alfabticos, numricos, de fechas y de horas. Tambin hay subcadenas especficas para informes.
Cuando pasamos datos de un tipo a datos de otro tipo, Velzquez realiza
una conversin automtica de los mismos.
Gracias a las secuencias de escape introducimos, en el interior de cadenas
de caracteres, algunos caracteres especiales que no se pueden representar mediante texto (retrocesos, comillas, saltos de pgina, etc.).
Asistentes
07
Variables
07
7.1
Variables globales
7.1.1. Definicin
Las variables se utilizan para almacenar datos individuales en disco o en
memoria. Son datos globales a la aplicacin y comunes, en el mbito de
red, para todos los usuarios si son en disco, mientras que su carcter es local si estn en memoria. Si un usuario modifica una variable global en disco, sta ser modificada para el resto de los usuarios, si modifica una variable global en memoria, el cambio slo le afectar a l.
Las variables globales se agrupan en el panel inferior izquierdo del Editor
de Proyectos. Para facilitar su distribucin podemos agruparlas dentro de
carpetas.
Podemos crear una variable global mediante el botn Nuevo objeto, eligiendo la opcin Variable, o desde el men de contexto que se presenta al
pulsar el botn derecho del ratn en algn punto de este panel, donde aparece la opcin insertar variable.
Cuando creamos una variable global aparece el cuadro de dilogo Propiedades de la variable global.
Variables
432 433
VELAZQUEZ VISUAL
07
Variables
Tipo de dato: para una variable podemos elegir entre los siguientes tipos: numrico, alfabtico, Alfa 128, Alfa 64, Alfa 40, fecha, hora, tiempo
y booleano.
TRUCO
La utilizacin de las variables
en memoria es til, entre
otras cosas, para la
sincronizacin entre
controles en mens de tipo
formulario. Tambin son
tiles para evitar conflictos
en aplicaciones
multiempresa.
434 435
VELAZQUEZ VISUAL
Tambin pueden ser usadas en los campos de las tablas como contenido
inicial.
Para usar las variables globales en una expresin frmula se usa, como prefijo - sufijo del identificador, el smbolo $, por ejemplo: $VARIABLE$.
Imprimir
Podemos imprimir el identificador, nombre, tipo y bytes (longitud) de las variables globales del proyecto. Para lanzar el informe con la lista de variables
globales seleccionamos la carpeta Variables globales del panel izquierdo
del Editor o cualquiera de las variables y pulsamos la opcin de men Archivo/Imprimir o el botn Imprimir
.
Variables de sistema
Cuestiones
1. Supongamos una aplicacin de Velzquez Visual para una empresa
naviera. Quieren realizar una bsqueda que nos devuelva todos los
buques cuya carga se encuentre entre un valor mximo y otro mnimo, ambos a fijar en el momento de lanzar la bsqueda. Crear la
bsqueda (usando variables).
7.2
Variables de sistema
07
VARIABLES DE SISTEMA
Variables
436 437
VELAZQUEZ VISUAL
v (privilegio del usuario actual): devuelve el privilegio del usuario actual. Podemos usarla en un proceso que compruebe el privilegio del usuario actual,
y que no le deje continuar si es inferior a 90. La sintaxis podra ser:
if v < 90
Lo siento + u + , no tiene privilegio para acceder a este formulario.
Set retorno proceso = NO
s (elemento en curso): esta variable devuelve el elemento en curso de una
rejilla. Funcionar de diferente forma segn se utilice en un proceso o en
una condicin color en las propiedades del cuerpo de una columna de una
rejilla. En el primer caso, devolver la posicin del registro sobre el que se
est actuando en ese momento. En el segundo, se ir evaluando a medida
que se vayan pintando las filas. Por ejemplo, si en una lnea de proceso queremos asignar a una variable local (ver punto siguiente), que llamamos Registro Actual, la posicin del registro actual la sintaxis sera:
Set -> Registro Actual, s
Es decir, si en la ejecucin del proceso se estaba sobre la posicin 3, ese
ser el valor que devuelva s.
c (directorio actual): nos devuelve el directorio actual. Por ejemplo, en una
especificacin de frmula de un proceso queremos asignar a una variable
local (que llamamos Senda) la senda para llegar a un fichero que se encuentra en el directorio actual. La sintaxis sera:
Set -> Senda, c +\\fichero
d (directorio de la aplicacin): devuelve el directorio de la aplicacin. Por
ejemplo, si en un formulario queremos ejecutar un fichero AVI, llamado Pelicula.avi, que se encuentra en el directorio de la aplicacin, la sintaxis sera:
d+ \\Pelicula.avi
e (est dada de alta una ficha?): esta variable devuelve 1 si la ficha existe
y 0 si no existe. Por ejemplo, si utilizamos un mismo formulario para altas y
modificaciones, se puede poner como condicin visible del control Alta que
e= 0, es decir, la ficha an no existe, la estamos creando, y para el control
modificacin la condicin sera e= 1, es decir, se activa cuando la ficha s
existe (la vamos a modificar).
m (estado (0/1) del elemento en curso en la multiseleccin): devuelve el estado del elemento en curso en rejillas con multiseleccin (0: no est seleccionado, 1: s est seleccionado). Su uso es exclusivo de la condicin de
color del cuerpo de las rejillas. Por ejemplo, en el cuerpo de la columna del
campo %NOMBRE% de una rejilla queremos establecer una condicin de
color para cuando el registro est seleccionado. La sintaxis de la frmula
sera:
07
m
Es decir, la condicin de color se activar cuando m= 1 (escribir la variable
es lo mismo que igualarla a uno).
Si queremos establecer la condicin cuando un registro no est seleccionado, la frmula sera:
!m
La sentencia !m equivale a escribir m 1, es decir, m= 0.
z (es supervisor el usuario actual?): devuelve 1 si el usuario en curso es el
usuario administrador y 0 si no lo es.
w (estamos en presentacin preliminar de un informe?): devuelve 1 si se
est realizando una presentacin preliminar de un informe, y 0 en el caso
contrario. La existencia de esta variable de sistema viene motivada por los
eventos que pueden ser disparados en las secciones de informes. Un evento asociado a una seccin del informe se disparar tanto en la salida a papel como en las salidas por pantalla; por tanto, si no deseamos que ciertas
funciones de un proceso de este tipo se ejecuten en las salidas por pantalla, utilizaremos esta variable de sistema.
7.3
Variables locales
Variables
438
VELAZQUEZ VISUAL
Resumen
Una variable es un espacio que podemos reservar y al que podemos asignar diferentes valores segn nos convenga. sta debe tener un nombre o
etiqueta, que ser el que apunte a ese espacio reservado.
Hay dos tipos de persistencia de variables: en disco y en memoria.
Si la persistencia es en disco, el valor de la variable ser comn para todos
los usuarios de la aplicacin.
Si la persistencia es en memoria, el valor de la variable tendr carcter local, es decir, si un usuario modifica su valor el cambio solamente le afectar a l.
Si se ejecutan dos tareas en 2 plano en las que se modifica el valor de la
misma variable global, teniendo sta persistencia en memoria (Independiente cada tarea en 2 plano), al inicio de cada proceso se crea una copia
de la variable (ambos partirn del mismo valor inicial), pero las modificaciones que se hagan en la variable sern independientes para cada proceso.
Si la variable tiene persistencia en memoria (Compartida por todas las tareas), no se realiza una copia de variables, por lo que cualquier cambio que
se haga a la variable afectar a ambas tareas en 2 plano.
Velzquez Visual posee una serie de variables a las que l mismo se encarga de asignar un valor. stas son las llamadas variables de sistema.
Las variables locales son usadas en procesos, de modo que mediante la
funcin set podemos declararlas y asignarles valores calculados por una
expresin frmula.