You are on page 1of 442

Edita:

tica Software, S.L.


Plaza Nicanor Piole, 1 - Esc. Izq. - 1 dcha.
33205 Gijn (Asturias)
Tels.: 985 35 64 60 - 985 35 34 64 Fax 985 35 44 09
Correo electrnico: comercial@velazquezvisual.com
Web: www.velazquezvisual.com

No est permitida la reproduccin total o parcial de este libro, ni


su tratamiento informtico, ni la transmisin de ninguna forma o
por cualquier medio, ya sea electrnico, mecnico, por fotocopia,
por registro u otros mtodos, sin el permiso previo y por escrito de
los titulares.

Agradecemos la inestimable colaboracin de los compaeros de


tica Software, de los equipos de programacin y soporte, en
especial el gran esfuerzo realizado por Rafael Cueto-Felgueroso
Sols, y a los equipos de comercial y administracin por su
contribucin a que llegara a buen puerto este manual.

ndice

Indice

01. INTRODUCCIN ...............................................................................................................


1.1. NACIMIENTO Y EVOLUCIN DE VELZQUEZ VISUAL ............................................................
1.2. MODELO REAL ............................................................................................................

15
17
19

02. INSTALACIN DE VELZQUEZ VISUAL.........................................................................


2.1. OBTENER VELZQUEZ VISUAL ........................................................................................
2.2. REQUISITOS MNIMOS....................................................................................................
2.3. INSTALACIN DE VELZQUEZ VISUAL ...............................................................................
2.4. EJECUTABLES DE VELZQUEZ VISUAL .............................................................................
2.5. MODOS DE GUARDAR UN PROYECTO. ARCHIVOS GENERADOS POR VELZQUEZ VISUAL ..........

21
23
23
23
23
24

03. INTERFAZ DEL EDITOR DE PROYECTOS......................................................................


3.1. VENTANA PRINCIPAL DEL EDITOR DE PROYECTOs .............................................................
3.1.1. Barra de Mens ..........................................................................................
3.1.2. Barra de Herramientas................................................................................
3.1.3. Mens de Contexto ....................................................................................
3.2. VENTANA ESQUEMA DE TABLAS ......................................................................................
3.2.1. Barra de Mens ..........................................................................................
3.2.2. Barra de herramientas y opciones..............................................................
3.2.3. Mens de Contexto ....................................................................................
3.3. PERSONALIZACIN DEL ENTORNO DE TRABAJO .................................................................
3.3.1. Personalizacin de Barras de Herramientas...............................................
3.3.2. Personalizacin del Entorno .......................................................................
3.3.3. Personalizacin del Proyecto .....................................................................
3.3.4. Personalizacin del Esquema de Tablas.....................................................

27
29
30
32
34
35
39
39
41
42
43
44
45
47

04. DESARROLLO BSICO DE UNA APLICACIN..............................................................


4.1. EXPLICACIN BSICA Y GENERAL ....................................................................................
4.1.1. Anlisis de la informacin ...........................................................................
4.1.2. Principales elementos que componen una aplicacin ...............................
4.2. INICIANDO EL PROYECTO ...............................................................................................
4.2.1. Editor de Proyectos ....................................................................................
4.2.2. Fuentes por defecto ...................................................................................
4.2.3. Propiedades del Proyecto ..........................................................................
4.2.4. Tareas pendientes.......................................................................................
4.3. ESQUEMA DE TABLAS ....................................................................................................
4.3.1. Tablas de datos...........................................................................................
4.3.2. Tablas de datos: maestras ..........................................................................
4.3.3. Enlace a tabla de datos maestra (enlace singular y plural).........................
4.4. OBJETOS VISUALES ......................................................................................................
4.4.1. Galera de objetos.......................................................................................
4.4.2. Rejilla visor de tablas ..................................................................................
4.4.3. Formulario de Edicin Fichas .....................................................................
4.4.4. Bsquedas ..................................................................................................
4.4.5. Mens .........................................................................................................
4.4.6. Localizador..................................................................................................
4.5. EJECUCIN (VRUNNER) ................................................................................................
4.5.1. Interfaz del Ejecutor (VRunner) ...................................................................
4.5.2. Navegacin en el ejecutor ..........................................................................

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

05. INSPECTORES ..................................................................................................................


(F10) ................................................................................
5.1. DE TABLAS Y CAMPOS
5.2. DNDE SE USA EL OBJETO
(F9)................................................................................
5.3. QU OBJETOS USA
................................................................................................
5.4. OBJETOS NO USADOS
.............................................................................................
5.5. POR TIPO DE OBJETO
(Ctrl + F9).............................................................................
5.6. OBJETOS DE UN COLOR
(F3) ...................................................................................
5.7. CONTENIDO DE FRMULAS
.......................................................................................
.........................................................................................
5.8. ERRORES DEL PROYECTO

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

07. VARIABLES ........................................................................................................................


7.1. VARIABLES GLOBALES ...................................................................................................
7.1.1. Definicin ....................................................................................................
7.1.2. Tipos de Variables Globales (en memoria y en disco)................................
7.2. VARIABLES DE SISTEMA .................................................................................................
7.2.1. Definicin y propiedades ............................................................................
7.2.2. Variables de sistema de Velzquez Visual ..................................................
7.3. VARIABLES LOCALES .....................................................................................................

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

09. EJECUTAR UNA APLICACIN.........................................................................................


9.1. CMO EJECUTAR UN PROYECTO .....................................................................................
9.2. INICIO DE UNA APLICACIN, CLAVE Y NOMBRE DE USUARIO ................................................
9.3. EL MEN DEL USUARIO Y SUS OPCIONES .........................................................................
9.4. QU OPCIONES NOS DAN LA REJILLA, EL FORMULARIO Y LOS VISORES DE TABLAS ARBOLADAS....
9.4.1. Formas de llamar a una rejilla.....................................................................
9.4.2. Formas de llamar a un formulario...............................................................
9.4.3. Eliminacin temporal de un elemento en una rejilla...................................
9.4.4. Invertir el orden de una lista dentro de una rejilla ......................................
9.4.5. Seleccin mltiple de registros en una rejilla (Multiseleccin) ...................
9.4.6. Edicin directa de rejillas............................................................................
9.4.7. Exportacin Ascii ........................................................................................
9.4.8. La Cesta de la Compra...............................................................................
9.4.9. Guardar y recuperar listas virtuales en disco .............................................
9.4.10. Imprimir desde una rejilla o un formulario ..................................................
9.4.11. Cmo introducir los datos ..........................................................................
9.4.12. Fundir una ficha con otra............................................................................
9.4.13. Cambiar aspecto de la rejilla ......................................................................
9.4.14. Cambio de visualizacin de las hojas de clculo .......................................
9.4.15. Imgenes dinmicas ...................................................................................
9.4.16. Rejillas encarpetadas en formularios (encarpetados de histrico) .............
9.4.17. Usos avanzados de una rejilla ....................................................................
9.4.18. Utilidades ....................................................................................................
9.4.19. Ejecucin de procesos desde una rejilla ....................................................
9.4.20. Conmutador de herencia de histricos para arbolados .............................
9.4.21. Altas desde un Localizador Arbolado.........................................................
9.5. EXPLORADOR WEB .......................................................................................................
9.6. CORREO ELECTRNICO .................................................................................................
9.7. INCORPORACIN DE UN MANUAL DE AYUDA PROPIO PARA UNA APLICACIN...........................

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

10. INSTALACIN DE APLICACIONES .................................................................................


10.1. VERSIN DE VELZQUEZ VISUAL BASADA EN SERVIDOR DE DISCO (MONOPUESTO) ................

483
485

Indice

10.2. VERSIN CLIENTE-SERVIDOR DE VELZQUEZ VISUAL .........................................................


10.3. CREACIN DE APLICACIONES PARA EJECUTAR DESDE CD-ROM .........................................

486
487

11. SERVIDOR DE APLICACIONES .......................................................................................


11.1. INSTALACIN DEL SERVIDOR ..........................................................................................
11.2. INTERFAZ DEL SERVIDOR ...............................................................................................
11.3. BARRA DE MENS ........................................................................................................
11.3.1. Aplicaciones................................................................................................
11.3.2. Editar...........................................................................................................
11.3.3. Servicios .....................................................................................................
11.3.4. Utilidades ....................................................................................................
11.3.5. Ver...............................................................................................................
11.3.6. Ventana .......................................................................................................
11.3.7. Ayuda..........................................................................................................
11.4. BARRA DE HERRAMIENTAS .............................................................................................
11.5. CONFIGURACIN DEL SERVIDOR .....................................................................................
11.5.1. Pestaa Estilos............................................................................................
11.5.2. Pestaa VATP .............................................................................................
11.5.3. Pestaa HTTP .............................................................................................
11.5.4. Pestaa iRunner..........................................................................................
11.5.5. Pestaa Licencia.........................................................................................
11.5.6. Configuracin bsica ..................................................................................
11.6. REA DE CONFIGURACIONES ..........................................................................................
11.6.1. Pestaa Aplicaciones..................................................................................
11.6.2. Pestaa Usuarios ........................................................................................
11.6.3. Pestaa Enganches ....................................................................................
11.6.4. Pestaa Transacciones ...............................................................................
11.6.5. Pestaa Archivos ........................................................................................
11.7. CONFIGURACIN DE USUARIOS ......................................................................................
11.8. CONFIGURACIN DE GRUPOS DE USUARIOS .....................................................................
11.9. CONFIGURACIN DE GRUPOS DE MENSAJERA ..................................................................
11.10. CONFIGURACIN DE TAREAS ..........................................................................................
11.10.1. Pestaa
Tareas programadas...............................................................
11.10.2. Pestaa
Tareas ejecucin ....................................................................
11.11. HISTORIAL DEL SERVIDOR ..............................................................................................
11.11.1. Opciones de men ....................................................................................
11.11.2. Configuracin bsica del Historial del servidor .........................................
11.12. CONFIGURACIN DE LOS DOMINIOS WEB .........................................................................
11.13. NAVEGADOR VELZQUEZ VISUAL ....................................................................................
11.13.1. Instalacin del Navegador .........................................................................
11.13.2. Interfaz del Navegador ..............................................................................
11.13.3. Barra de mens .........................................................................................
11.13.4. Barra de herramientas ...............................................................................
11.14. OPTIMIZACIN DE APLICACIONES EN CLIENTE-SERVIDOR ...................................................
11.14.1. Sockets TCP: retardos y optimizacin ......................................................
11.14.2. Optimizar el tamao del mapa ..................................................................
11.14.3. Elementos que retardan una aplicacin ....................................................
11.14.4. Transacciones ............................................................................................
11.14.5. Optimizaciones para el rendimiento ptimo en ejecucin ........................

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

11.14.6. Efectos negativos no deseados ................................................................


11.15. INCORPORACIN DE UN MANUAL DE AYUDA PROPIO PARA UNA APLICACIN...........................

572
575

12. EDITOR DE PERSONALIZACIONES...............................................................................


12.1. INTRODUCCIN ..............................................................................................................
12.2. INTERFAZ DEL EDITOR .....................................................................................................
12.2.1. Partes de la ventana del editor ....................................................................
12.2.2. Barra de Mens ...........................................................................................
12.2.3. Barra de Herramientas.................................................................................
12.2.4. Personalizacin del entorno de trabajo .......................................................
12.3. CREACIN DE PERSONALIZACIONES.................................................................................
12.3.1. Designacin de objetos como personalizables (Editor de Proyectos) ........
12.3.2. Nueva personalizacin (Editor de Personalizaciones)..................................
12.4. PERSONALIZAR OBJETOS DE UN MAPA DE VELZQUEZ VISUAL ............................................
12.4.1. Personalizar un informe ...............................................................................
12.4.2. Personalizar un dibujo..................................................................................
12.4.3. Crear informes y dibujos..............................................................................
12.5. CARGAR LAS PERSONALIZACIONES EN LA APLICACIN........................................................

577
579
580
580
581
583
584
586
586
587
589
589
591
592
593

13. IMPORTADOR XBASE ......................................................................................................


13.1. INICIO DEL IMPORTADOR XBASE......................................................................................
13.2. IMPORTAR UNA BASE DE DATOS ASCII............................................................................
13.3. IMPORTAR UNA BASE DE DATOS DE DBASE .......................................................................

609
611
612
615

ANEXO I: FORMATEADORES DE VELZQUEZ VISUAL.......................................................


ALFABTICOS .........................................................................................................................
NUMRICOS ...........................................................................................................................
DE FECHAS ............................................................................................................................
DE HORAS .............................................................................................................................

617
619
619
619
620

ANEXO II: FUNCIONES DEL ASISTENTE DE EDICIN DE FRMULAS


ANEXO II: DE VELZQUEZ VISUAL .......................................................................................

623

ANEXO III: PALETA DE COLORES..........................................................................................

641

01
Introduccin

01
1.1

Nacimiento y evolucin
de Velzquez Visual

Los comienzos de Velzquez Visual se remontan a finales de la dcada de


los 70, principios de los 80, cuando su creador, Juan Muoz Cobos, comienza a disear programas de gestin de compras en Basic. Usaba un
Commodore Pet 8032, despus de haber trabajado con una facturadora
Olivetti en la que incluye un interfaz grfico.
Tras usar LISP en la programacin midi de un Roland MPU-401, en el ao
1986 realiza un programa para transporte de contenedores en C-Basic. A finales de ese mismo ao se pasa a Lattice C y escribe diversos programas
para libreras, apareciendo el gestor de libreras Homero. Paralelamente disea un motor de disco en el que aparecen los primeros ndices, as como
la gestin del rea de datos, de la que se aprovecha Homero. Ya entonces,
tras darse cuenta de que problemas aparentemente muy distintos se resuelven de igual modo, surge la idea de abstraccin.
Expliquemos esta abstraccin mediante una analoga: peras, manzanas, pltanos... en principio pueden parecer muy distintos, pero tenemos la capacidad de abstraer y englobarlas dentro de una misma categora: fruta. De modo anlogo podramos decir que Velzquez Visual trabaja con fruta: como
maneja fruta es capaz de arreglrselas con peras, manzanas, pltanos... adems, si una abstraccin es buena, cualquier elemento nuevo es asimilado por
el modelo al momento. Es lo que el creador de Velzquez Visual denomina
Efecto Kiwi: aunque nunca hayamos visto un kiwi, como tenemos la idea
abstracta fruta en nuestra mente, es identificado como tal de inmediato.
Cuando en Velzquez Visual se plantea un problema aparentemente distinto a los dems no es necesario retocar el modelo inicial puesto que, en modo abstracto, el problema puede ser tratado como los anteriores.
Juan Muoz contina diseando funciones de captura de pantalla y presentacin de los datos, y desarrolla los primeros enlaces simples: los punteros singular y plural. Tambin prev la importancia que la conexin en red
iba a tener en el futuro, tenindolo en cuenta en todos los desarrollos siguientes. De momento sigue trabajando en MS-DOS, con la dificultad de
trabajar sin interfaces grficos.
En el ao 1992 migra a C++ todo lo creado hasta entonces, con estructura de
32 bits, multitarea y trabajando en Windows. Desde finales de ese ao hasta
la presentacin en el SIMO en 1996 de la primera versin de Velzquez Visual,
pasan varios aos en los que reescribe por completo el kernel de la aplicacin, incluyendo editor, ejecutor y servidor de disco. Durante dos aos escribi en torno a 800.000 lneas de cdigo sin poder realizar una sola prueba. Al
final de ese perodo de tiempo reescribe el programa de gestin de libreras
Homero, lo que le sirve para afianzar la idea que estructura Velzquez Visual.
A partir de la presentacin de Velzquez Visual 1.0 aparecen sucesivas versiones con nuevos objetos, enlaces y punteros, siempre manteniendo la

Introduccin

18 19

VELAZQUEZ VISUAL

compatibilidad con versiones anteriores. Esto ocasiona que el kernel inicial


crezca ms de cien veces. En la versin 2.1 aparece el generador Esquema
de Tablas, de modo que Velzquez Visual se desarrolla de un modo que implica una programacin cada vez ms visual. Adems de la eficacia y la rapidez, se mimar al diseador de la aplicacin, facilitndole la tarea.
Aparecen nuevos objetos y punteros que permiten al diseador realizar tareas importantes sin tener que programar lneas de cdigo, como el enlace
Singular de Plural por ndice, que permite realizar inventarios a fecha automticamente, el puntero a hermano contiguo, para gestin de saldos, objetos como la Bsqueda alfabtica ternaria, etc. Esto implica que el programador ha de abstraer a la hora de disear una aplicacin ya que Velzquez
Visual pretende que la abstraccin alcance no slo a la base de datos, sino
a los procedimientos y a los objetos que usamos, teniendo en cuenta en todo momento el modelo real de relaciones de Velzquez Visual.
El proceso de abstraccin conduce a que objetos nuevos que van apareciendo se les aplique las mismas tcnicas usadas para trabajar con otros,
por ejemplo, haciendo que un contenedor de objetos de tamao variable se
comporte como una tabla, con unos ndices y un rea de datos.
De esta manera el ejecutor de aplicaciones lee el mapa como un fichero de
propiedades, que aplica a la hora de mostrar y trabajar con los distintos objetos visuales: tablas, ndices, rejillas, bsquedas, etc. El ejecutor sabe
construir los diversos objetos mientras que el mapa le dice qu caractersticas deben tener.
Hasta entonces Velzquez Visual haba funcionado en red local, pero habiendo previsto el desarrollo de las redes y con el impulso de Internet a finales de los aos 90, crea el Servidor de Aplicaciones de Velzquez Visual
que se presenta en el SIMO de 1999 junto a la versin 4.0 de Velzquez Visual. Gracias de nuevo a la abstraccin, todas las aplicaciones diseadas
para red local funcionan a travs de servidor sin ningn problema. La creacin del servidor, as como del navegador con el que acceder a l, supuso
un trabajo de seis meses y 900.000 lneas de cdigo, que tres meses despus fueron ampliadas para que tambin sirviera pginas web dinmicas,
es decir, alimentadas por las tablas de la aplicacin.
El futuro de Velzquez Visual pasa por aplicar la arquitectura cliente-servidor a toda la estructura, lo que implicara la edicin en red de un mapa en
modo multiusuario. Otra tendencia ser la herencia de mapas: un mapa podr apuntar hacia otro, asumiendo como propia toda su estructura. En este punto confluiran la herencia y la arquitectura cliente-servidor: un mapa
podra asimilarse por otro va red, no importando si sta es local o Internet.
Ya se est pensando en crear ndices complejos, tablas polimrficas en las
que los registros tengan diferentes campos segn su tipo, etc.
Todas las metas alcanzadas por Velzquez Visual se basan en un cdigo
fuente limpio y documentado, con una programacin que busca la rapidez
adems de la sencillez, pero inflexible ante los parches, es decir, los problemas han de solucionarse de verdad, evitando las soluciones parciales y

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

Los enlaces de tipo singular de plural permiten enlazar un registro de una


tabla maestra con un registro de una tabla histrica. Hay dos tipos: singular de plural por posicin y singular de plural por ndice.
El enlace singular de plural por posicin permite elegir un registro de un histrico de la tabla actual resolvindolo por la posicin. Este enlace nos resolvera, por ejemplo, qu corredor qued en una posicin determinada (el
primero, el ltimo, el sptimo...) en una etapa de la Vuelta a Asturias.
El enlace singular de plural por ndice resuelve un registro histrico de la tabla actual por un ndice determinado. Por ejemplo, gracias a este enlace podemos obtener las existencias de un artculo a una fecha dada.
Velzquez Visual cuenta tambin con el enlace a tabla de datos indirecta,
de modo que podremos enlazar la tabla de datos en curso con otra tabla
que no sea maestra de la actual. Suele tratarse de tablas que carecen de
campo Cdigo y que, por tanto, no pueden ser definidas como maestras de
otras tablas. ste puede ser enlace indirecto real (con persistencia en disco) o enlace indirecto virtual (con persistencia en memoria).
Usaremos el virtual cuando queramos leer datos, con lo que no ocupan nada en disco, mientras que el real lo usaremos cuando queramos escribir datos, permaneciendo en las tablas. Esta escritura podremos realizarla mediante el objeto actualizacin, que permite realizar de manera automtica
modificaciones en otras tablas que nosotros determinemos. Por ejemplo,
con una actualizacin podemos forzar a que las existencias de cierto artculo en un almacn se actualicen con la cantidad indicada en las lneas de
compra o venta.
En definitiva, con Velzquez Visual debemos darnos cuenta de que el anlisis de una aplicacin y su reflejo en un esquema de tablas, es decir, el conjunto de tablas y enlaces establecidos entre ellas, es muy importante, porque de ah saldrn una serie de funcionalidades que no necesitaremos programar y que darn una gran potencia y agilidad a la aplicacin.

02
Instalacin de
Velzquez Visual

02
2.1

Obtener Velzquez Visual

Se puede descargar la versin LT del programa en la siguiente direccin:


http://www.velazquezvisual.com
Esta versin genera aplicaciones sin limitaciones, funcionando tambin en
Cliente-Servidor.

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

Instalacin de Velzquez Visual

La instalacin de Velzquez Visual es sencilla, de manera que si ejecutamos


el programa de instalacin se crear la siguiente estructura de carpetas en
c:\Archivos de programa.

2.4

Ejecutables de Velzquez Visual

Velzquez Visual se compone de varios programas; vemoslos de forma general.

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

Modos de guardar un proyecto.


Archivos generados por Velzquez Visual

Existen dos formatos de archivo diferentes en los que puede guardar un


proyecto, vemoslos:
MAP: un proyecto con este formato puede ser editado en el Editor de Proyectos de Velzquez Visual y tambin puede ser ejecutado (tanto por VRun-

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

Este fichero es generado al ejecutar aplicaciones con VRunner no con el


Servidor de Aplicaciones.
.LOG: agenda. Si se produce alguna incidencia que impida la terminacin
de un proceso transaccionado, deja constancia del mismo en un archivo de
este tipo.
.VPU: impresoras lgicas. Este tipo de archivo se crea cuando un usuario
ha conectado una impresora fsica a una impresora lgica de Velzquez.
.VTV: lista virtual. Con esta extensin se almacenan en disco las listas virtuales al seleccionar la opcin de listas guardar lista virtual.
.VUF: ficheros de configuracin del motor. El fuvm.vuf guarda las aplicaciones abiertas, usuarios, grupos... El tareas.vuf almacena las tareas programadas y el carcom.vuf guarda las carpetas compartidas.
.CAR: en l se almacenan los encarpetados de histrico manuales.
.VEA: en estos archivos se almacena la configuracin de una exportacin a
ASCII cuando pulsamos el botn salvar configuracin en la opcin de listas
Exportar a ASCII.

03
Interfaz del Editor
de Proyectos

03
3.1

Interfaz del Editor


de Proyectos

Ventana principal del Editor


de Proyectos

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:

VENTANA PRINCIPAL DEL PROYECTO

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

3.1.1. Barra de Mens

Imprimir

En la Barra de Mens encontraremos las siguientes opciones:


En la Barra de Mens encontraremos las siguientes opciones:

Presentacin preliminar

Archivo

Enviar
Deshacer
Rehacer
Cortar
Copiar

Con el men Archivo podemos crear un mapa nuevo (


Nuevo Ctrl+N).
Abrir uno ya creado (
Abrir Ctrl+A). Cerrar el que estamos editando (
Cerrar) y guardarlo ( Guardar Ctrl+G o Guardar Como...). Tambin podremos guardarlo en formato .VAM (
Guardar aplicacin), comprimido y encriptado, y ejecutarlo (Ejecutar F5).
Tambin encontramos diferentes opciones para la impresin (
Imprimir
Ctrl+P, Modo imprimir todo,
Presentacin preliminar, Especificar impresora, Preparar pgina), adems de la posibilidad de enviar el mapa por correo electrnico (
Enviar).

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.

Inspector de tablas y campos

Edicin

Fuentes por defecto

En el men Edicin tenemos las opciones habituales de deshacer y rehacer


Rehacer), cortar, copiar y pegar (
Cortar, Ctrl+X,
(
Deshacer, Ctrl+Z,
Copiar, Ctrl+C y
Pegar, Ctrl+V).
Adems encontramos varias opciones propias de Velzquez, donde podremos editar las propiedades del mapa que estamos realizando (
Propiedades proyecto...), anotar las tareas pendientes de ste (
Tareas pendientes...), editar las fuentes que queremos que por defecto tomen los objetos visuales (
Fuentes por defecto...) y, por ltimo, editar los estilos de
usuarios (
Estilos de Usuarios...).

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

Interfaz del Editor


de Proyectos

Inspector dnde se usa el objeto


Inspector qu objetos usa
Inspector objetos no usados
Inspector por tipo de objeto
Inspector objetos de un color

El ltimo comando es muy interesante, ya que buscar y localizar aquellos


errores que pueda tener el proyecto (
Errores del proyecto).

Inspector contenido frmulas

Objetos

Inspector errores del proyecto

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

Podemos crear un nuevo objeto visual (


Nuevo/Objeto), un objeto de tabla (es decir, un campo, un ndice, etc.) o una carpeta o subcarpeta.
Desde aqu tambin llamamos al almacn de objetos para traer algo de l
(
Almacn de objetos F8), o eliminar algn objeto (
Suprimir Supr).

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-

Crear campos fecha/hora


Crear campos dimensiones dibujo

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.

3.1.2. Barra de herramientas

Nuevo proyecto
Abrir proyecto
Guardar proyecto
Guardar aplicacin

Por defecto, la barra de herramientas del editor de proyectos de Velzquez


Visual contiene los siguientes botones:
3.1.2. Barra de Herramientas
Nuevo proyecto: para crear un proyecto nuevo.
Abrir proyecto: para cargar un proyecto.
Guardar proyecto: para archivar el proyecto en curso. Al pulsar este botn, automticamente se guarda en un fichero .BAK una copia con la ltima
versin guardada del mismo. De esta forma se puede recuperar fcilmente
la versin anterior del proyecto. Un proyecto guardado de esta forma podr
ser abierto con el Editor de Proyectos y ejecutado (tanto con el VRunner como con el servidor de Aplicaciones). El archivo guardado tendr extensin
.map. ste ser el archivo con el que trabaje el programador.
Guardar aplicacin: guarda el proyecto en un modo encriptado. El archivo se generar con extensin .VAM. Este archivo no podr ser abierto
con el Editor de Proyectos pero s ejecutado (tanto por el VRunner como por

03

Interfaz del Editor


de Proyectos

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

Esquema: para acceder a la pantalla de esquemas en la que podr


crearse la estructura de tablas de forma visual.

Cortar

Los tres siguientes son:


y a continuacin

Pegar

Cortar, Copiar y Pegar (respectivamente)

Copiar

Inspector de tablas y campos

Deshacer y Rehacer y los inspectores:


Inspector de tablas y campos,
Inspector Dnde se usa el objeto,
Inspector Qu objetos usa el objeto,
Inspector de objetos no usados,
Inspector por tipo de objeto,
Inspector de objetos por color,
Inspector de frmulas,
Inspector
de errores del proyecto.
Nuevo objeto: para visualizar la Galera de Objetos.
Almacn de objetos: permite importar y asignar tablas, campos y objetos visuales de otras aplicaciones de Velzquez en el proyecto actual. Un
almacn bien estructurado le ahorrar horas de programacin.

Inspector Dnde se usa el objeto


Inspector Qu objetos usa el objeto
Inspector de objetos no usados
Inspector por tipo de objeto
Inspector de objetos por color
Inspector de frmulas
Inspector de errores del proyecto

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

Suprimir objeto: para eliminar un objeto del proyecto.


Suprimir objeto

Nueva carpeta: para crear carpetas en el panel derecho del editor de


proyectos, y Nueva subcarpeta, para crear subcarpetas en el panel derecho
del editor de proyectos.
Los cinco botones siguientes sirven para crear sub-objetos de tablas de datos:
Nuevo campo, Nuevo ndice, Nuevo enlace histrico, Nueva actualizacin y Nuevo evento de tabla.

Nueva carpeta
Nuevo campo
Nuevo ndice
Nuevo enlace histrico
Nueva actualizacin

Imprimir y Previsualizar la documentacin del proyecto u objetos del


panel derecho.
Organizador: con 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 habr
que hacer clic con el ratn sobre la pestaa correspondiente.

Nuevo evento de tabla


Imprimir
Previsualizar
Organizador

34 35

Lanza el manual en lnea del


editor de proyectos
Cerrar carpeta superior
Abrir carpeta completa

VELAZQUEZ VISUAL

Lanza el manual en lnea del editor de proyectos.


Lista de proyectos abiertos: en este control se muestra el proyecto actual, es decir, si se estn editando varios proyectos a la
vez, este control mostrar el proyecto en curso. Para cambiar de proyecto
bastar con abrir este combo box y seleccionarlo.

Cerrar carpeta completa


Cerrar completo

3.1.3. Mens de contexto

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

Panel de Estructura de Datos

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

Interfaz del Editor


de Proyectos

Propiedades
Objetos de la tabla
Nueva carpeta
Nueva carpeta hija
Insertar variable
Cambiar color

Panel de Objetos Visuales


En el panel de Objetos Visuales, desde el men de contexto tenemos la opcin de abrir la Galera de Objetos (
Nuevo objeto), o las opciones que vimos en la Barra de Mens Comunes: Localizar y Convertir en:
Icono
usuarios,
Splash,
Proceso inicio,
Men inicial,
Men cierre aplicacin,
Pgina Html principal, segn sea el objeto que tengamos seleccionado.

Nuevo objeto
Icono usuarios
Splash
Proceso inicio
Men inicial

3.2

Ventana Esquema de Tablas

Men cierre aplicacin


Pgina Html principal

Ahora vamos a pasar al Esquema de Tablas. Para ello, desde la ventana


principal del proyecto hemos de pulsar el botn
Esquema de Tablas, o
seleccionar la opcin del men Ventana/
Esquema de Tablas.
Al entrar en l, como no hemos creado ninguna tabla, el Asistente para la
creacin de una tabla de datos aparece abierto.

VENTANA ESQUEMA DE TABLAS CON EL ASISTENTE DE CREACIN DE TABLAS

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.

VENTANA CREACIN DE MAESTRO

A continuacin aparecer la ventana Esquema de Tablas con la tabla recin


creada. Veamos las partes que componen esta ventana.

03

VENTANA ESQUEMA DE TABLAS

La pantalla aparece dividida en dos paneles, izquierdo y derecho, y a su


vez el izquierdo se divide en otros tres. En la parte superior izquierda se
mostrar la lista de esquemas que hemos creado en un mismo proyecto.
Debajo, se mostrar una lista de todas las tablas del proyecto junto a una
casilla de verificacin. Si est activada la casilla de verificacin de una tabla se mostrarn, en el panel derecho, todos los enlaces que salgan de la
misma. Si est desactivada, no. En la parte inferior del panel izquierdo se
mostrar la lista de las tablas no utilizadas en el esquema que se est editando.
En el panel derecho veremos las tablas del proyecto en forma de esquema
con sus correspondientes enlaces. En funcin del tipo de tabla que se trate, stas se representarn grficamente de forma y color distintos.

REPRESENTACIN DE LOS DISTINTOS TIPOS DE TABLA

Los distintos tipos de enlace se representan tambin de distintas formas y


colores.

Interfaz del Editor


de Proyectos

38 39

VELAZQUEZ VISUAL

REPRESENTACIN DE LOS ENLACES

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

Interfaz del Editor


de Proyectos

3.2.1. Barra de mens


Aparte de los mens que veamos en la ventana principal del proyecto, tenemos varios especficos para esta ventana. stos son:
especficos para esta ventana. Estos son:

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.

Tamao del contenido

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

3.2.2. Barra de herramientas y opciones


Panel izquierdo: con este botn podemos activar y desactivar el panel
izquierdo completo.

Propiedades de la tabla

Panel izquierdo

40 41

Nueva tabla maestra

VELAZQUEZ VISUAL

Nueva tabla maestra: para crear una tabla de tipo maestro normal con
clave numrica.

Nueva tabla submaestra

Nueva tabla submaestra: para crear una tabla de tipo submaestro.


Nueva tabla arbolada
Nueva tabla histrica
Propiedades tabla
Objetos de la tabla
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
Ver punteros a maestros

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.

Interfaz del Editor


de Proyectos
Ver punteros abuelos de submaestros
Ver punteros indirectos

Ver punteros indirectos: visualizacin de punteros indirectos, sean reales o virtuales.


Ver punteros singular de plural: visualizacin de enlaces singulares de
plural.
Ver punteros a histrico: visualizacin de enlaces plurales a histrico.

3.2.3. Mens de Contexto

Ver punteros singular de plural


Ver punteros a histrico
Propiedades de la tabla
Objetos de la tabla
Inspector: De tablas y campos
Inspector: De tablas y campos

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

Maquetar: Tamao del contenido


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

42 43

VELAZQUEZ VISUAL

3.3

Personalizacin del entorno


de trabajo

Para facilitar la tarea de programacin es posible personalizar el entorno de


trabajo del editor de proyectos, adaptando barras de Herramientas, el proyecto y los esquemas de tablas.
Para abrir el men de personalizaciones nos situamos sobre cualquier barra de
herramientas del Editor de Proyectos y pulsamos el botn derecho del ratn.
Tambin es posible hacerlo ejecutando la opcin del men Ver/Personalizar.

VENTANA PERSONALIZACIN

Aparecer el cuadro de dilogo Personalizacin en el que se incluyen cinco


separadores:
Comandos: los diferentes comandos que pueden ser incluidos en barras de
herramientas.
Toolbars: los nombres de las barras de herramientas del Editor.
Entorno: diversas opciones del Editor como son la Senda del almacn, opciones de inicio de la aplicacin, etc.
Proyecto: aqu se encuentra todo lo referente a la personalizacin de los
proyectos.
Esquemas: en esta pestaa encontraremos todo lo referente a la personalizacin de los esquemas de tablas.

03
3.3.1. Personalizacin de Barras de Herramientas

VENTANA PERSONALIZACIN / TOOLBARS

Para crear una nueva barra de herramientas pulsamos el botn Nueva... de


la pestaa Toolbars; se presentar un cuadro de dilogo en la que escribiremos su nombre. La barra creada aparecer en la lista de barras de herramientas, dentro de la pestaa Toolbars, y fsicamente en pantalla.
Para ver una barra de herramientas activaremos la casilla de verificacin
que se encuentra junto a su nombre, y para esconderla desactivaremos dicha casilla de verificacin.
Para borrar una barra de herramientas, la seleccionaremos en la lista de la
pestaa Toolbars y pulsamos el botn Eliminar.
Para aadir botones a una barra de herramientas vamos a la pestaa Comandos, seleccionamos la categora de comandos deseada, hacemos clic
con el ratn sobre el botn a incluir y lo arrastramos hasta la barra de herramientas, soltndolo para finalizar.

Interfaz del Editor


de Proyectos

44 45

VELAZQUEZ VISUAL

VENTANA PERSONALIZACIN / COMANDOS

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.

3.3.2. Personalizacin del Entorno


En la pestaa Entorno podemos elegir cmo arrancar el Editor, la lista de
ltimos proyectos que debe presentar y dnde est situado el almacn.

03

Interfaz del Editor


de Proyectos

VENTANA PERSONALIZACIN / ENTORNO

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.

3.3.3. Personalizacin del Proyecto


En esta ventana personalizaremos el modo de visualizacin de los distintos
objetos del proyecto.
Tanto las estructuras de datos en el panel izquierdo del Editor como los objetos en el panel derecho son estructurados de forma arbolada (de un nodo

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:

VENTANA PERSONALIZACIN / PROYECTO

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.

3.3.4. Personalizacin del Esquema de Tablas


En la pestaa Personalizacin / Esquemas personalizamos los siguientes
aspectos de los esquemas de tablas:

Interfaz del Editor


de Proyectos

48 49

VELAZQUEZ VISUAL

VENTANA PERSONALIZACIN / ESQUEMAS

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

Explicacin bsica y general

4.1.1. Anlisis de la informacin


Siempre que nos proponemos disear una aplicacin usando Velzquez
Visual, hemos de analizar el problema, al igual que haramos con cualquier
otra herramienta de programacin. El fin de este anlisis es el de organizar
la informacin en tablas de tal manera que, una vez establecidas las relaciones entre ellas, podamos obtener la informacin requerida en cada momento.
Pero al trabajar con Velzquez Visual este punto cobra mayor relieve ya
que un correcto planteamiento del problema redundar en una mayor potencia, adems de un ahorro de tiempo y trabajo, evitando escribir lneas
de cdigo.
Velzquez Visual permite establecer relaciones entre las tablas siguiendo un
modelo denominado real, que, a diferencia del modelo relacional, dota a la
aplicacin final de la capacidad de dar informacin de manera automtica
sin necesidad de escribir cdigo suplementario. Estas relaciones se pueden
crear gracias a que Velzquez Visual dispone de una serie de enlaces inexistentes en otras bases de datos o desarrolladores de aplicaciones. De ah
la necesidad de entender la filosofa de Velzquez Visual y su modelo real.
Pero de alguna manera tendremos que acceder a esta informacin organizada de un modo tan abstracto, por esto aparecen en escena una serie de
elementos denominados Objetos visuales, que son los que nos facultan para trabajar con los datos, introducirlos, mostrarlos, etc.

4.1.2. Principales elementos que componen


4.1.2 una aplicacin
El principal elemento para mostrar listas de datos es la rejilla, en la que las
columnas representan los campos y las filas representan las fichas. Existen
otros elementos de visualizacin de listas de datos como son el rbol visor
de tablas, el casillero, el agendizador o los grficos.

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

Mediante las bsquedas podremos encontrar listas o fichas concretas que


sern presentadas por medio de rejillas.
Estas bsquedas estarn basadas en los ndices que creamos en las tablas
y que, gracias a la estructura de Velzquez Visual, permiten una gran agilidad a la hora de trabajar con grandes cantidades de datos.
Todas estas opciones sern accesibles al usuario final a travs de un men,
que crearemos nosotros y que estar complementado por uno propio de
Velzquez Visual (con el que podremos navegar por la informacin gracias
a los enlaces entre tablas y que se mostrar siempre sin necesidad de programarlo).

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:

4.2.1. Editor de Proyectos


Para crear una nueva aplicacin, abrimos el Editor de Proyectos de Velzquez Visual y seleccionamos la opcin de men Archivo/Nuevo o pulsamos
el botn Nuevo Proyecto
, situado en la barra de herramientas del Editor
de Proyectos.
El nuevo mapa se dividir en tres reas: el rea Estructura de datos, donde
aparecern (entre otras cosas) las tablas que vayamos incluyendo, el rea
Objetos, donde aparecern los objetos visuales que se vayan creando, y el
rea Variables, donde aparecern las variables globales que incorporaremos.

Nuevo Proyecto

54 55

VELAZQUEZ VISUAL

EDITOR DE PROYECTOS

4.2.2. Fuentes por defecto


Cada objeto visual debe tener asignados unos tipos de letra para luego ser usados dentro del objeto. Si no tenemos fuentes por defecto, cada vez que creemos
un objeto nuevo, debemos aadrselas para luego usarlas dentro del objeto. Pero si tenemos definidas unas fuentes por defecto, stas sern aadidas a cada
nuevo objeto visual que creemos, siempre dando la posibilidad de aadir ms
fuentes que las ya asignadas. Veamos cmo seleccionar las fuentes por defecto.
Si no asignamos fuentes por defecto a un objeto visual, el sistema usa la
fuente system para visualizar los datos. No obstante, es aconsejable usar
fuentes en los objetos para evitar problemas.

e Ejemplo: seleccin de las fuentes por defecto


Fuentes por defecto

Vamos a la opcin de men Edicin/Fuentes por defecto

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.

VENTANA FUENTES POR DEFECTO

En la ventana Fuentes por defecto aparecen una serie de botones, que se


visualizarn en otras ventanas y que nos permiten Aadir, Sustituir, Suprimir, Subir o Bajar (ordenar) las fuentes.

4.2.3. Propiedades del Proyecto


Una vez elegidas las fuentes, el siguiente paso sera seleccionar la opcin
Edicin/Propiedades proyecto..., o bien pulsar el botn
situado en la barra de herramientas.
Al hacer clic en esta opcin, Velzquez Visual nos mostrar la ventana Propiedades proyecto.

56 57

VELAZQUEZ VISUAL

PROPIEDADES DEL PROYECTO

En la ventana rellenaremos, dentro de la pestaa General, el Nombre del


proyecto, la Versin, el nombre de su Compaa y su Nmero de Licencia.
Esto es importante por lo siguiente: en caso de no poder abrir el mapa que
haya creado con su desarrollo, en Atica Software se lo pueden abrir, pero
es imprescindible que en el mapa aparezca el nmero de licencia.

ADVERTENCIA
Nunca nombrar el proyecto
del mismo modo que alguna
de las tablas que lo
componen, ya que entonces
no podr ejecutarse.

En la pestaa Comentarios podemos aadir notas sobre la aplicacin que


estamos desarrollando. Es sta una ventana que aparecer en varios de los
objetos visuales, tablas, etc., y que nos servir para ir documentando la
aplicacin. Los comentarios que escribamos aqu se vern al seleccionar un
mapa en el Almacn de objetos.

PESTAA ESTILOS

En la pestaa Estilos nos encontramos con las siguientes opciones:

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

Visible: el programa siempre se ejecutar visualizando el organizador.


Invisible: el programa siempre arrancar sin mostrar el organizador.
La pestaa Opciones de Mens nos permitir activar o desactivar las opciones de la barra de mens que se describen a continuacin. Si desactivamos una opcin, sta no podr activarse desde el Ejecutor.

PESTAA OPCIONES MENS

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

En el control n de usuario Sentinel introduciremos en formato decimal


nuestra password (se proporciona en formato hexadecimal), y en el control
Palabra clave del proyecto teclearemos la clave que deseemos. Con estos
dos datos Velzquez compondr un cdigo que aparecer en el control Bytes a grabar en la llave.
El paso siguiente ser abrir la aplicacin de grabacin de llaves y proceder
a la grabacin con los datos proporcionados por el editor de Velzquez
(pestaa Sentinel).

Desarrollo bsico
de una aplicacin

60 61

VELAZQUEZ VISUAL

4.2.4. Tareas pendientes


Tareas pendientes

Por ltimo hablaremos de la opcin Tareas pendientes


. Est pensada de
cara al programador, de modo que pueda ir anotando todo aquello que tenga pendiente por hacer en el proyecto, pudiendo incluso establecer una fecha lmite de caducidad. Si alguna de las tareas ha caducado, al cerrar el
proyecto el programa le avisar que tiene tareas caducadas. Muy til por
ejemplo para ir anotando los plazos previstos de cada mdulo de la aplicacin.
Al ejecutar la opcin se presenta el cuadro de dilogo Tareas pendientes de:

TAREAS PENDIENTES DE:

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

4.3.1. Tablas de datos


Las tablas son los objetos que usamos para almacenar la informacin de
manera organizada. En cada una de ellas se guardan los datos sobre un tema particular, pudiendo relacionarse unas con otras para formar una superestructura de informacin.
Las tablas de datos organizan la informacin en fichas o registros, cada uno
de los cuales contiene los mismos campos o datos individuales (por ejemplo, la tabla CLIENTES contiene informacin acerca de los clientes de una
empresa, teniendo cada cliente una ficha. A su vez, cada ficha organiza la
informacin en campos, como pueden ser el nmero de telfono, direccin,
empresa...).
El nmero mximo de registros (fichas) que puede contener una tabla es de
cuatro mil millones, limitacin impuesta por la estructura de 32 bits. Podemos manejar tablas de tamao superior a dos gigas en disco, siendo el lmite mximo terico de 4 Petabytes.
Para facilitar la creacin de tablas, Velzquez cuenta con una serie de asistentes.

4.3.2. Tablas de datos: maestras


Creacin y propiedades
Vamos a centrarnos a continuacin en las tablas de tipo maestro normal
con clave numrica. La propiedad principal de una tabla maestra radica en
tener un campo que identifica de forma inequvoca a sus registros mediante un ndice con clave nica o irrepetible.
En la ventana Creacin de maestro podremos crear una tabla que inicialmente tendr dos campos (CODIGO y NOMBRE) y tres ndices (CODIGO,
NOMBRE, PALABRAS y TROZOS).

Desarrollo bsico
de una aplicacin

62 63

VELAZQUEZ VISUAL

VENTANA CREACIN DE MAESTRO

En esta ventana indicaremos:


Nombre plural y singular de la tabla maestra.
Regin de Datos de la clave: aqu especificamos datos correspondientes al
campo CODIGO de la tabla.
Nombre del campo: descripcin que va a tener el campo CODIGO (clave de
la tabla). Por defecto aparece Cdigo.
Numeracin automtica: marcando esta opcin le indicamos a Velzquez
Visual que cree el campo CODIGO de tipo numrico y l ir incrementndolo en una unidad por cada registro introducido. Esta propiedad y las dems que definamos ahora podrn modificarse una vez creada la tabla. El
uso de esta opcin es aconsejable para que sea Velzquez el que controle
la numeracin sin intervencin del usuario. Si deseamos una numeracin
distinta podemos crear un nuevo campo para ello, que indexaremos como
clave nica.
Nombre del ndice: descripcin que va a tener el ndice por cdigo que va
a crear Velzquez Visual. Por defecto ser Cdigo.
ADVERTENCIA

Longitud-Rango: indicamos cuntos registros, como mximo, soportar la


tabla (255, 65535, 16,7 millones o 4.000 millones de registros).

Al ndice cdigo no hemos


de aadirle componentes,
cambiar su tipo, etc.

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.

Desde este cuadro podremos editar, aadir o borrar componentes de la


misma. Tambin podremos aadir, modificar o borrar componentes directamente en el panel izquierdo del Editor.
Aadir campo: crea un nuevo campo al que podremos modificar el identificador y editar sus propiedades.

Aadir campo
Crear nuevo campo enlazado

Crear nuevo campo enlazado: muestra el asistente para la creacin del


tipo de enlace que elijamos.
Nuevo ndice: crea un nuevo ndice al que podremos modificar el identificador y luego editar.

Nuevo ndice

64 65

Nuevo ndice del campo

VELAZQUEZ VISUAL

Nuevo ndice del campo: crea un nuevo ndice a partir del campo seleccionado.

Nuevo enlace histrico


Nueva actualizacin

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

Nueva actualizacin: crearemos una nueva actualizacin desde la tabla


que estamos editando.

Suprimir
Subir y Bajar
Editar
Cambiar identificador
Cortar, Copiar y
Pegar
Salir
Propiedades de tabla

Nuevo evento: podremos crear un nuevo evento o trigger para que se


ejecute cuando haya movimientos en la tabla.
Suprimir: eliminamos cualquier elemento que hayamos creado en la tabla.
Subir y Bajar: ordenamos los elementos dentro de sus carpetas.
Editar: editamos las propiedades de un objeto de la tabla. Equivale a doble clic del ratn sobre el elemento.
Cambiar identificador (F2): con este botn podremos cambiar los identificadores de los objetos. Conseguiremos el mismo efecto pulsando F2 o
haciendo un clic del ratn sobre el objeto seleccionado. Recordamos que
nunca hemos de cambiar los identificadores de los campos CODIGO y
NOMBRE.
Cortar Ctrl+X, Copiar Ctrl+C, Pegar Ctrl+P: usaremos estos botones para cortar, copiar y pegar objetos de la tabla y de otras tablas.
Salir: cerramos la edicin de propiedades de la tabla.
Si sobre una tabla pulsamos la combinacin de teclas Alt + Intro o el botn
Propiedades de tabla
, obtendremos su cuadro de propiedades.

04

Desarrollo bsico
de una aplicacin

VENTANA PROPIEDADES DE LA TABLA

Veamos estas propiedades una por una:


Nombre Plural: nombre plural de la tabla de datos.
Nombre Singular: nombre singular de la tabla de datos.
Velzquez Visual necesita conocer el nombre de la tabla en plural y en singular ya que automticamente utilizar uno u otro nombre dependiendo del
objeto que se est editando en ejecucin. Siguiendo el ejemplo anterior, si
hemos creado una tabla Clientes (nombre plural) y Cliente (nombre singular), cuando se vaya a mostrar un formulario, en la barra de ttulo aparecer Cliente ya que es slo una ficha la que se visualiza, mientras que en
otro objeto en el que aparezca un listado de varios clientes, en su correspondiente barra de ttulo aparecer Clientes.
Tipo: tipo de tabla (maestro, submaestro, histrico). Depender de la
plantilla utilizada en el asistente de creacin de tablas. Veremos ms adelante los tipos de tablas.
Tabla de datos padre: si la tabla es submaestra, presentar el nombre de su
tabla padre. Ms adelante volveremos sobre este concepto.
Reside en: las tablas en Velzquez Visual pueden estar almacenadas de dos
formas:
En disco: son tablas compartidas por todos los usuarios de la 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

Dentro del Editor de Proyectos (EdMap) pulsamos el botn


(Esquema de
tablas) para visualizar el Editor de Esquemas. Si comenzamos con un nuevo proyecto, al no haber ninguna tabla creada, aparecer una ventana de
seleccin de tipo de tabla en la que seleccionaremos la opcin Maestro
normal con clave numrica y pulsaremos el botn Aceptar, por lo que obviaramos el siguiente paso.

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.

Nueva tabla maestra

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

PROPIEDADES DEL CAMPO

Propiedades de los campos. Tipos


ADVERTENCIA
Si en una aplicacin ya
existen datos y desea
cambiar el identificador y el
nombre de un campo,
deber modificar primero su
identificador, ejecutar la
aplicacin para forzar la
reconstruccin de la tabla,
volver a editar el proyecto y
cambiar el nombre del
campo; pues si edita el
proyecto y modifica el
identificador y el nombre del
campo, al ejecutar,
desaparecer el contenido
de dicho campo en los
registros existentes.

Las caractersticas comunes a todos los campos son las siguientes:


Nombre: es el nombre (descripcin) que tendr el campo. Ser el que aparezca cada vez que el campo se incluya dentro de un objeto visual o se
seleccione como parte de una frmula. Al igual que aconsejamos con las
tablas, tratemos de que sus nombres sean escuetos y nos recuerden cul
es su contenido. Tambin hemos de huir de los caracteres especiales.
Enlace Enlazado?: ms adelante dedicaremos un apartado a describir
los distintos tipos de enlaces que podemos utilizar.
Longitud: nmero de bytes para el campo.
Decimales: nmero de decimales para el campo. Se podr especificar
hasta 6 decimales.
Signo: casilla de verificacin que define si el campo tiene signo.
Rango: lmites vlidos de entrada de valores para el usuario.
Contenido inicial: expresin frmula que ser el contenido inicial del
campo. Puede ser una constante, el identificador de un campo, una variable global, una variable del sistema, una funcin de frmulas o una
funcin (objeto visual). Es muy habitual inicializar los campos de tipo Fecha y Hora con las funciones fHoy( ), que devuelve el da actual, y fAhora( ), que devuelve la hora actual del sistema. Si en el contenido inicial de
un campo se especifica ms de un campo o variable, ste ser interpretado por el programa como una frmula, en cambio, si en el contenido
inicial aparece un solo campo o una sola variable, Velzquez lo tomar

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

Alfabtico: tipo alfabtico estndar que incluye todos los caracteres


de la tabla ANSI. Se suele utilizar en campos que vayan a contener direcciones de correo electrnico o la ruta de algn fichero, ya que los
campos alfa que veremos a continuacin no contienen ni la arroba (@) ni
la barra de directorios (\).
Numrico: se utiliza para datos numricos. Se puede especificar su
longitud, nmero de decimales y signo.

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

Texto enriquecido: su contenido es un documento de texto RTF. Se


diferencia del Objeto Texto en que admite cambiar fuentes, estilos, alineacin, etc. en tiempo de ejecucin.

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

Usar el tipo Alfa 64-40 para


trabajar con maysculas, por
ejemplo en la introduccin
de campos para normalizar
a maysculas o al realizar
bsquedas sin que tenga
relevancia distinguir entre
maysculas y minsculas.

Frmula Dinmica

74 75

VELAZQUEZ VISUAL

TABLA DE CARACTERES PARA EL TIPO DE CAMPO ALFA 64

TABLA DE CARACTERES PARA EL TIPO DE CAMPO ALFA 40

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

En el control de edicin Nombre escribiremos la descripcin que va a tener


la tabla, mientras que los distintos datos a incorporar en la tabla esttica se
incluyen pulsando sobre el botn Aadir
. Al pulsar este botn aparece
la ventana para introducir el dato.

En dicha ventana introduciremos un cdigo (slo admite un carcter, por lo


que si escribimos un cdigo numrico para cada dato slo podramos introducir 10 registros: del 0 al 9. Si necesitamos ms datos podremos solucionarlo introduciendo letras) y una descripcin.
El resto de botones que aparecen a continuacin del botn aadir nos permiten suprimir, subir, bajar o editar un dato. Tambin existe la posibilidad de
asignar un icono a cada dato utilizando el botn Cambiar iconos.
Enlazaremos un campo de una tabla de datos con una tabla esttica mediante el enlace a tabla de datos esttica. As conseguimos que el valor del
campo enlazado sea siempre igual a uno de los registros de la tabla esttica. Para ello hemos de especificar en el cuadro de dilogo propiedades del
campo que el campo debe estar enlazado a tabla de datos esttica, as como el identificador de sta.

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.

Ejemplo: uso de una tabla esttica


Estamos diseando una aplicacin de cursos de formacin para profesionales en la que tenemos, entre otras, una tabla llamada ESTUDIANTES con
una serie de campos.

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

Pulsamos el botn Nuevo objeto


de la barra de herramientas (o bien
a travs de la barra de mens, seleccionando la opcin Objetos > Nuevo > Objeto).
Dentro de la ventana Galera de objetos, seleccionamos el objeto Tabla
esttica.
Velzquez muestra la ventana correspondiente a las propiedades de la
tabla esttica. En la propiedad Nombre escribimos Situacin del estudiante.
Para introducir las diferentes situaciones en las que se puede encontrar
el estudiante, pulsamos el botn Aadir
. Velzquez Visual nos muestra una ventana en la cual podremos introducir cada uno de los registros
que tendr la tabla esttica. Es decir, para el caso Parado, rellenamos
este estado de la siguiente manera: Cdigo: P, Descripcin: Parado.

Una vez pulsado el botn Aceptar, volveramos a pulsar el botn Aadir


para aadir el registro correspondiente a la situacin En activo: Cdigo: A, Descripcin: En activo.
Finalmente, repetiramos la operacin anterior para introducir el registro
del estado Autnomo. Para ello escribimos: Cdigo: T, Descripcin:
Autnomo. Al pulsar el botn Aceptar, en la ventana de Propiedades de
la tabla esttica veremos los tres registros introducidos.

04

Desarrollo bsico
de una aplicacin
e

Desde esta ventana podremos eliminar un registro


, subir
o bajar
un registro concreto, as como visualizar
la ventana de propiedades del registro. Tambin es posible asignar un pequeo icono
a cada registro de la tabla asignndole un objeto Multi-icono (que se ver
con posterioridad).
Al pulsar el botn Aceptar de la ventana de Propiedades de la tabla esttica, sta aparecer dentro de la carpeta Tablas estticas que est en
el rea Estructuras de datos del Editor de Proyectos. Cambiamos el
identificador de la tabla (que por defecto es TABLEST1) por otro llamado SITUACION.

El paso siguiente sera crear un nuevo campo en la tabla ESTUDIANTES,


que ser el que permita elegir qu situacin es la que tiene el estudiante (Parado, En activo o Autnomo). En la opcin Enlazado? de la ventana Propiedades del campo indicaremos el tipo Tabla esttica, y en la
propiedad Identificador el nombre de la tabla esttica (en este caso SITUACION).

eliminar un registro
subir un registro
bajar un registro
visualizar la ventana de propiedades del registro
asignar un pequeo icono

80 81

VELAZQUEZ VISUAL

Sustituimos el identificador del campo por SITUACION.


Finalmente incluimos en el correspondiente formulario tres controles Botn de radio o un control ComboBox o un List Box para que el usuario
pueda seleccionar la situacin del estudiante.
Situndonos sobre la carpeta Tablas estticas del panel izquierdo del Editor
de Proyectos y seleccionando la opcin de men Archivo / Imprimir (Ctrl-p),
obtendremos un informe que presenta el identificador, el nombre y la lista
de elementos de las tablas estticas del proyecto.

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

Velzquez mostrar un cuadro de dilogo en el que definir las propiedades


de la plantilla.

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.

Ejemplo: uso de las plantillas de campo


Estamos realizando una aplicacin en la que tenemos, entre otras, dos tablas: una que se llama CLIENTES y otra que se llama PROVEEDORES.

Cuando trabajemos con


plantillas hemos de tener en
cuenta el siguiente detalle:
supongamos que asociamos
la plantilla1 a un campo,
llammoslo campo1. Si ms
tarde cambiamos las
propiedades de la plantilla1,
el campo1 permanecer con
las propiedades de la
plantilla vieja, es decir, no se
actualiza.

82 83

VELAZQUEZ VISUAL

Vamos a aadir, tanto en la tabla CLIENTES como en PROVEEDORES, el


campo TELEFONO. Para ello utilizaremos una Plantilla de campo. Los pasos que realizamos son los siguientes:
Nuevo objeto

Pulsamos el botn Nuevo objeto


de la barra de herramientas (o bien
a travs de la barra de mens, seleccionando la opcin Objetos > Nuevo > Objeto).
Dentro de la ventana Galera de objetos seleccionamos el objeto Plantilla de campo personalizado.
Velzquez muestra la ventana correspondiente a las propiedades del
campo (en este caso la plantilla de campo) en la cual introducimos las
propiedades que tendr dicha plantilla.

04

Desarrollo bsico
de una aplicacin
e

PLANTILLA TELFONO

Pulsamos el botn Aceptar de la ventana de propiedades y veremos, en


la carpeta Plantillas de Campo que aparece en el rea de Estructura de
datos del Editor de Proyectos, el nombre del campo Plantilla que acabamos de crear.
Por defecto aparece como nombre del identificador PLANTILLA1. Sustituiremos el identificador por TELEF.

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

Al seleccionar el Tipo Telfono, Velzquez asignar al nuevo campo las


propiedades de la plantilla.

Indices. Tipos y propiedades generales


El ndice en Velzquez Visual es un elemento clave ya que permite realizar
bsquedas de datos, tanto en la propia tabla a la que pertenece como en
otras enlazadas. Tambin es el encargado de enlazar esas mismas tablas.

Nuevo ndice

Se crean pulsando el botn Nuevo ndice


de la barra de herramientas.
Velzquez Visual genera un identificador estndar para los ndices que podr ser modificado por el diseador. Haciendo doble clic sobre el nombre
del ndice aparece el cuadro de dilogo Propiedades del ndice donde se le
da un nombre, un tipo y las partes de las que se compone.

04

Desarrollo bsico
de una aplicacin

ADVERTENCIA
CUADRO PROPIEDADES DEL NDICE

La ventana presenta los siguientes apartados:


Tipo de ndice: Velzquez Visual cuenta con los siguientes tipos de ndices:
Clave nica: no admite ms que un registro con la misma clave. Por
ejemplo, el campo cdigo de una tabla maestra. Si en el mismo ndice aadimos varias partes, slo admitir un registro con esa combinacin de componentes.
Palabras: el registro es indexado por cada palabra encontrada en los
campos que forman la clave. Los ndices de tipo Palabras disponen
de una lista negra en la que se pueden incluir todas aquellas palabras
que no queremos indexar. Para ello nos situamos en el control de edicin Lista negra, introducimos la palabra a excluir y pulsamos la tecla
Tab para aceptarla. Repetiremos esta operacin por cada palabra
que queramos aadir a la lista. Los artculos El, La, Las, Los... son los
mejores candidatos a incluir, aunque no los nicos. El ndice Palabras
suele usarse con el campo NOMBRE de un artculo, cliente, proveedor, etc. lo que permite, por ejemplo, buscar los artculos en cuya
descripcin est incluida una determinada palabra, sea cual sea la
posicin que ocupe dentro del campo.
Mltiples claves: el registro es indexado desde cero claves hasta el
nmero de claves declaradas en el cuadro de edicin N de claves.
Vamos a tratar de aclararlo con un ejemplo: supongamos una tabla
que contiene datos acerca de libros (ttulo, autor, gnero...). Existe la
posibilidad de que un libro sea escrito por dos personas, de modo
que podramos tener los campos Autor1 y Autor2. En este caso po-

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

demos definir un ndice de Mltiples claves con 2 claves, la primera


es el campo Autor1 y la segunda Autor2. Si hacemos ahora una bsqueda de libros por un autor determinado se incluirn todos los libros
de los que sea coautor, independientemente de que figure en el campo Autor1 o en el campo Autor2. As nos ahorramos tener que definir
dos ndices y dos bsquedas (una para cada campo Autor), cosa que
tendramos que hacer de no existir los ndices de mltiples claves, ya
que no sabemos si el que buscamos se encuentra en el campo Autor1 o en el Autor2. Adems evitamos dar de alta ms de una vez a
un autor, cosa que ocurrira si en un libro metemos a un autor como
Autor1 y en otro distinto lo metemos en el campo Autor2 (estaramos
dndolo de alta dos veces). Esto no ocurre si usamos los ndices de
mltiples claves. Este ndice se usa en especial en los plurales finitos,
cuando simplificamos una relacin entre tablas de plural en las dos
direcciones, y que veremos ms adelante.
Acepta repetidas: la ficha es indexada slo una vez pero, al contrario
que la clave nica, se admiten repeticiones. El sistema le aade 4 bytes a la clave para diferenciar las repetidas.
Aproximacin alfabtica ternaria: permite localizar de forma instantnea los registros que contengan dentro del campo indexado el grupo
de letras solicitadas por el usuario, en nmero mnimo de tres, de ah
lo de ternaria.
N partes: indica el nmero de campos que aadimos en el cuadro Frmula partes y por los que seremos capaces de indexar. Por ejemplo, si
incluimos los campos Autor1, Autor2 y Autor3 en el cuadro condicin
frmula, el nmero de partes ser tres. No hay limitacin en el nmero
de partes de la clave, se pueden poner tantos campos como sea necesario y lgico.
N de claves: se refiere al nmero de campos que aparecen en el cuadro
Frmula partes por los que queremos indexar. Slo es necesario rellenar
este cuadro cuando el tipo de ndice es Mltiples claves. Siguiendo con
el ejemplo del punto anterior, si especificamos que el nmero de claves
es uno, slo estaremos indexando por Autor1, si el nmero de claves es
dos, indexaremos por Autor1 y Autor2...
Campo condicin para indexar: debe ser un campo Booleano (S / No) al
que asociamos nuestro ndice. Del valor que tenga el campo depende
que el registro sea o no indexado.
Estado del campo para indexar: si la casilla de verificacin est activada,
el registro se indexar cuando el valor del campo booleano sea Verdadero. Si la casilla de verificacin no est activada el registro se indexar
cuando el valor del campo booleano sea Falso (1 verdadero, 0 falso).
Frmula partes: permite seleccionar de la lista Campos seleccionables
los campos que componen la clave (por ejemplo, Autor1, Autor2...). Con
el botn Conversin parte, podemos reducir la ocupacin en disco de

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.

Ejemplo: creacin de ndices


Tenemos un proyecto con varias tablas, entre las cuales hay una llamada
ESTUDIANTES con una serie de campos e ndices (dichos ndices creados
automticamente por Velzquez Visual).

TRUCO

Los ndices de clave nica


son tiles para asegurarnos
de que un nico elemento
con cierta caracterstica, o
con dos o ms, no se repita.

88 89

VELAZQUEZ VISUAL

El usuario de la aplicacin quiere incorporar en el programa las siguientes


bsquedas: un listado de todos los estudiantes ordenados por cdigo, otro
en el que aparezcan ordenados alfabticamente, otro que muestre los registros que incluyan en su nombre la palabra o palabras que el usuario escriba y por ltimo otro en el que el usuario pueda buscar registros por trozos de palabras del nombre. Necesitaremos crear bsquedas, y las bsquedas necesitan de los ndices para que stas puedan ejecutarse. Los ndices que nos hacen falta los crea por defecto Velzquez Visual:
El ndice CODIGO es del tipo Clave nica e indexa por el campo CODIGO de la tabla. Este ndice se utilizar para realizar la bsqueda de estudiantes por cdigo.
El ndice NOMBRE es de tipo Acepta repetidas e indexa por el campo
NOMBRE de la tabla. Por defecto indexa los 12 primeros caracteres y lo
convierte a Alfa 64. Nos permitir realizar la bsqueda de estudiantes
por orden alfabtico.
El ndice PALABRAS es de tipo 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 es de tipo 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.

e Ejemplo: Anlisis de una tabla de datos maestra


Vamos a declarar una tabla de tipo maestro normal con clave numrica,
desactivando todas las opciones, para ser nosotros mismos los que establezcamos las propiedades que hubiera creado Velzquez Visual por
defecto.

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

Desactivaremos tambin las opciones ndice alfabtico, ndice de palabras


e ndice de trozos de palabras de Datos de la descripcin. Adems, quitaremos el Nombre del campo. De Datos de la clave desactivamos Numeracin automtica y eliminamos el Nombre del campo, y el Nombre del ndice. Pulsamos entonces Aceptar, con lo que ya tendremos creada la tabla
sobre la que trabajaremos.
Editamos ahora la tabla haciendo doble clic con el botn izquierdo del ratn sobre sta y vemos lo que hemos creado.

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

TABLA CREADA CON TODAS LOS OPCIONES POR DEFECTO

Como sabemos, es importante mantener los identificadores de los campos


que se crean por defecto al aadir una tabla para que la aplicacin funcione bien, sin embargo s podemos modificar las descripciones para que se
adecen a los datos que van a contener: por ejemplo, nos puede interesar
cambiar la descripcin del campo NOMBRE (por defecto es Nombre) por el
de Razn Social o Nombre comercial. El descriptor del campo CDIGO normalmente no se cambiar. Si queremos usar un cdigo propio (cdigos de
barra, codificacin de series de albaranes propia, etc.), lo aadiremos como un campo ms de la tabla, manteniendo el original.
Adems, en las propiedades del campo CDIGO veremos cmo su contenido inicial es Ninguno. Lo normal es que usemos como contenido inicial Siguiente al ltimo, forzando a que Velzquez Visual compruebe antes de aadir un registro cul fue el ltimo, y sumar uno al cdigo.
Tambin disponemos de la opcin Contador en variable, de modo que Velzquez se encarga de incrementar el valor del cdigo pero trabajando sobre una variable. En este caso, si abrimos el formulario de alta, Velzquez
incrementa el valor de la variable en una unidad y no la decrementa si cancelamos el formulario de alta.
La opcin Ninguno la usaremos, por ejemplo, cuando importemos registros
que ya tengan cdigo, o en otros tipos de tabla en los que seamos nosotros, en ejecucin, los que cumplimentamos el cdigo.

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.

Nuevo ndice del campo

94 95

VELAZQUEZ VISUAL

Nuevo ndice del campo

Ya tenemos un ndice alfabtico por el campo NOMBRE, que nos servir


para sacar una lista de fotografas ordenadas por el ttulo. Ahora vamos a
hacer el ndice PALABRAS: podemos, o bien volver a seleccionar el campo
NOMBRE y pulsar el botn
Nuevo ndice del campo, o bien copiar el que
acabamos de crear. Hagamos esto ltimo.

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

Ahora cambiaremos el Tipo de ndice, escogiendo Palabras de entre la lista


que se nos presenta. Este ndice nos servir para buscar palabras completas en el ttulo de las fotografas. Cuando escogemos este tipo de ndice podemos hacer uso de la Lista Negra: las palabras que introduzcamos en el
control inferior pulsando tabulador a continuacin, no formarn parte de la
bsqueda. Con esto evitamos que en el ndice se guarden ciertas palabras
como artculos, determinantes, preposiciones, etc., que no suelen usarse
en las bsquedas o que no nos interesen (a, ante, de, el, la, para, por, etc.).
Nos falta el tercer ndice, el ndice TROZOS. Repetimos la misma operacin:
copiamos el ltimo ndice que creamos, lo renombramos y lo llamamos
TROZOS. Lo editamos, y como Tipo de ndice escogemos Aproximacin alfabtica ternaria. Este ndice nos permitir encontrar fotografas cuyo ttulo
contenga las tres letras, o ms, que hayamos escrito. Las claves que guarda son todos los grupos ternarios de letras que contenga un campo (por
ejemplo, prueba, tendr como claves: pru, rue, ueb, eba).

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.

4.3.3. Enlace a tabla de datos maestra


4.3.2. (enlace singular y plural)
Ya hemos comentado anteriormente cmo Velzquez Visual establece las
relaciones entre las tablas mediante distintos tipos de enlaces, uno de los
cuales es el enlace a tabla de datos maestra.

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.

Una vez establecido el enlace, vamos a comprobar los elementos que ha


creado Velzquez Visual automticamente: si nos vamos a la Ventana de
propiedades de la tabla MODELOS, veremos que en la carpeta Campos ha
creado el campo MARCAS. Esto es lgico ya que hemos indicado que un
Modelo va a pertenecer a una Marca determinada. Si hacemos doble clic
sobre su identificador, veremos en la ventana de Propiedades del campo
que es un campo enlazado a la tabla MARCAS mediante el enlace a tabla
de datos maestra.

enlazador

98 99

VELAZQUEZ VISUAL

VENTANA PROPIEDADES DEL CAMPO MARCAS

Si volvemos a la misma ventana de Propiedades de la tabla MODELOS y


hacemos doble clic sobre la carpeta ndices veremos cmo ha creado un ndice llamado MARCAS. Si damos doble clic sobre el ndice veremos la ventana correspondiente a sus propiedades:

PROPIEDADES DEL NDICE MARCAS

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.

PROPIEDADES DEL HISTRICO MODELOS

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.

crear punteros con histrico

100 101

VELAZQUEZ VISUAL

VENTANA CREACIN DE PUNTEROS CON HISTRICO

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.

e Ejemplo: Enlace a tabla de datos maestra


Tenemos un proyecto con una tabla llamada ESTUDIANTES, en la que hemos creado una serie de campos e ndices.

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

Al pulsar el botn Aceptar de la ventana Creacin de Maestro, Velzquez


Visual crea una representacin de la tabla CURSOS, que aparecer coloreada en amarillo (indicando que en ese momento est seleccionada).
Utilizando las teclas flecha del teclado o pinchando, arrastrando y soltando con el ratn, situamos las tablas, una debajo de otra.
TRUCO
Al disear el esquema de
tablas hemos de
acostumbrarnos a situar las
tablas maestras por encima
de sus tablas histricas. De
este modo cuando
posteriormente veamos el
esquema, ser mucho ms
fcil reconocer cul es la
relacin de cada tabla con
respecto a las dems.

El usuario nos ha dicho que un alumno slo puede estar matriculado en


un curso, dato que nos indica cmo enlazar ambas tablas. Enunciando
las frases Los alumnos del curso y El curso del alumno deducimos
que ESTUDIANTES es histrica de CURSOS.
Para enlazar las tablas hacemos lo siguiente: nos situamos con el botn
izquierdo del ratn sobre el enlazador de la tabla CURSOS (un pequeo
rectngulo situado en la esquina superior izquierda de la tabla). El cursor
del ratn tomar la forma de una mano.

Al pinchar con el botn izquierdo del ratn sobre el enlazador, el cursor


tomar la forma de una flecha de color rojo. Manteniendo el botn izquierdo del ratn pulsado y arrastrndolo hasta situarse sobre la tabla
ESTUDIANTES, al dejar de pulsar el botn del ratn se dibujarn automticamente dos lneas: una de color rojo (enlace plural) y otro de color
azul (enlace singular).

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.

Al hacer doble clic sobre la tabla CURSOS aparece la ventana Tabla:


CURSOS, y en ella, dentro de la carpeta Campos, veremos cmo Velz-

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.

Ejemplo: Creacin de histricos


Supongamos una aplicacin que lleva el censo de habitantes en una poblacin. Consta de dos tablas: POBLACIONES y HABITANTES, de modo
que HABITANTES es histrica de POBLACIONES.

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

4.4.1. Galera de objetos

GALERA DE OBJETOS

04

Desarrollo bsico
de una aplicacin

La Galera de objetos es el cuadro de dilogo en el que pueden elegirse los


objetos que componen un proyecto de Velzquez Visual.
Para acceder a ella hemos de pulsar dentro de la barra de herramientas del
Editor de Proyectos el botn
Nuevo objeto. Una vez en ella, para elegir
un objeto podemos, o bien hacer doble clic sobre el que queramos crear, o
bien seleccionarlo y pulsar el botn
. Con el botn
podremos salir sin
crear ningn objeto, y si reconocemos mejor el objeto que necesitamos por
los iconos, podemos hacerlos ms grandes pulsando
.

Nuevo objeto
Seleccionar
Salir
Aumentar tamao de iconos

Nos interesa familiarizarnos con las Carpetas de objetos, utilizadas en el


editor de proyectos para ordenar y clasificar los objetos visuales (y tambin
las variables globales).

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

VENTANA CARPETA DE OBJETOS

Seleccionamos el diseo de carpeta segn el tipo de objetos visuales que


vayamos a clasificar en ella y pulsamos el botn Aceptar. De esta manera
Velzquez Visual crea en el rea de objetos la carpeta. Si queremos cambiar su ttulo basta con pulsar la tecla F2, escribir el nuevo ttulo y pulsar el
botn Intro.
TRUCO
Como sugerencia de
organizacin se suele crear
una carpeta para cada tabla
de nuestro proyecto (las
carpetas Objetos 1 a
Objetos 7) y luego crear en
su interior una serie de
carpetas hijas (carpetas
Varios a Informes) para
agrupar los distintos objetos
visuales.

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.

4.4.2. Rejilla visor de tablas


La rejilla es un objeto que se utiliza en Velzquez Visual para ver listas de registros de una determinada tabla. Se crea partiendo de columnas, cada una
de las cuales contendr un campo de la tabla, mientras que las filas hacen
referencia a cada uno de los registros de la tabla.

04

Desarrollo bsico
de una aplicacin

Creacin y propiedades de rejillas


Para crear una rejilla pulsamos, dentro de la barra de herramientas del Editor de Proyectos, el botn
Nuevo objeto. Aparecer la ventana Galera
de Objetos, en la que haremos doble clic sobre el objeto Rejilla visor de tablas. Velzquez Visual nos mostrar la ventana Propiedades de la rejilla.

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

Multiseleccin: activada esta casilla de verificacin, en tiempo de ejecucin


podremos seleccionar ms de un registro a la vez (para ejecutar un proceso sobre los registros seleccionados, por ejemplo). Una vez activada, se insertar antes de la primera columna otra nueva, que ser la columna de
multiseleccin. Una vez creada la columna de multiseleccin podemos darle propiedades.
Editable: activada esta casilla de verificacin, en tiempo de ejecucin el
usuario podr modificar registros directamente en la rejilla, sin tener que
abrir el formulario de edicin. A las columnas de la rejilla que queramos sean
modificables por el usuario final, tendremos que activarles esta opcin en
las propiedades del Cuerpo. Los campos de tipo objeto no admiten la edicin directa.
Lneas redimensionables: si se desactiva, en ejecucin no se podr cambiar
el alto de las lneas.

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.

Columnas redimensionables: si se desactiva, en ejecucin no se podr


cambiar el ancho de las columnas.
Cols/Ancho: se muestran aqu (son de solo lectura) las dimensiones de la
rejilla: el nmero de columnas y el ancho de la misma.
Botones cabecera: establecemos su altura, tambin fijamos los colores para la cara, la sombra y la luz de los mismos.
Cuerpo: podremos establecer la altura de las filas, el color de fondo y el color de fondo para filas pares. Tambin el color de las lneas de la rejilla.
Pie: activamos esta opcin para que en la rejilla se muestre un pie para presentar, por ejemplo, un texto o la suma acumulada de toda la columna. Tendremos que especificar su altura en pxeles.
Formulario alta: formulario asociado para dar altas en la tabla de datos. En
el ejecutor esta opcin se dispara con la tecla +, haciendo doble clic en una
lnea vaca o a travs del men de contexto de rejillas.
Formulario modificacin: formulario asociado para modificar un registro en
la tabla de datos. En el ejecutor esta opcin se dispara pulsando la tecla espacio sobre la lnea seleccionada, haciendo doble clic sobre la misma o a
travs del men de contexto de rejillas.

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.

Formulario bajas: formulario asociado para dar de baja un registro en la


tabla de datos. En el ejecutor esta opcin es disparada con la tecla Supr
habiendo seleccionado la lnea o a travs del men de contexto de rejillas.
Doble clic: si queremos disparar un proceso al hacer doble clic sobre un
elemento de la rejilla, habr que seleccionarlo en este parmetro.
Informe: informe por defecto que puede lanzarse desde esa rejilla.

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 creacin de rejillas


Para facilitar la creacin de rejillas, Velzquez Visual dispone del Asistente
de creacin de rejillas. ste aparece al pulsar el botn
Asistente, situado en la barra de herramientas de la rejilla. El asistente aparece automticamente cuando la rejilla est vaca.

Asistente

114 115

VELAZQUEZ VISUAL

Las propiedades del asistente son:

Expandir rama

Campos seleccionables: son los campos que pueden incluirse en la rejilla,


es decir, los campos contenidos en la tabla de datos asociada y los de las
tablas enlazadas a ella. Los campos enlazados estn identificados con un
pequeo botn ( ), que al ser pulsado despliega los campos de la tabla de
datos enlazada. Si se trata de un campo enlazado a una tabla esttica, teniendo sta definido un dibujo multi-iconos, podremos visualizar en el cuerpo de la rejilla el icono del dato. Para ello desplegamos el campo y seleccionamos el icono. Para seleccionar un campo haremos doble clic sobre el
nombre del campo o bien pulsaremos la barra espaciadora.
Campos seleccionados: campos elegidos de la lista Campos seleccionables. Por cada elemento el asistente crear una columna para la rejilla. Para borrar un elemento de esta lista hacemos doble clic sobre l o lo seleccionamos y pulsamos la tecla Supr.
Aspecto: tipos de letra y color para cada una de las secciones: cabecera,
cuerpo y pie.
Crear con todos los campos: crear una columna en la rejilla por cada campo
de la tabla de datos. En este caso no es necesario seleccionar los campos.
Crear segn seleccin: crear una columna en la rejilla por cada campo seleccionado.
En la parte inferior de la rejilla se muestra el ancho en pxeles de cada columna y si ha sido definida como de ancho variable, en cuyo caso, junto al
nmero aparecer el smbolo >>. Por ejemplo, en la siguiente figura se indica que la primera columna mide 46 pxeles de ancho, la segunda 90, la
tercera 262 (definida con ancho variable), la cuarta y la quinta 78.

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

Crear y eliminar columnas


Una vez creada la rejilla, podemos modificar la misma utilizando la barra de
herramientas disponible.

Hagamos un recorrido por los botones de la barra:


Si queremos que aparezca el Asistente de creacin de rejillas, pulsamos el
boton
Asistente.
Para ver las propiedades de la rejilla pulsamos el botn
jeto.

Propiedades ob-

Asistente
Propiedades objeto
Procesos

Para incluir procesos ejecutables desde la rejilla pulsamos el botn


Procesos. Por defecto, desde la rejilla podremos disparar cualquier proceso
pblico del mapa cuyo origen sea una lista asociada a la rejilla. Con esta opcin seleccionamos cules podrn dispararse y cules no.

Nueva columna
Vuelve a funcin Modificar
Propiedades de columna

Para crear una columna en la rejilla pulsamos el botn


Nueva columna.
De este modo creamos una columna que se posicionar en ltimo lugar.
Si mantenemos pulsado el botn Vuelve a funcin Modificar
, se volver
a activar automticamente el modo Propiedades de columna
tras usar
una sola vez cualquiera de los dems botones. Si no est pulsado, no se
vuelve automticamente al modo Propiedades de columna y podremos usar
cada botn indefinidamente.

Insertar columna
Duplicar columna
Eliminar columna
Mover columna a la izquierda
Mover columna a la derecha

Para insertar una nueva columna pulsamos el botn


Insertar columna y
sobre la cabecera de la columna a insertar hacemos un clic. La columna ser creada a la izquierda de la seleccionada.

Aumentar ancho
Reducir ancho

Si queremos duplicar una columna, pulsamos el botn


Duplicar columna. La nueva columna ser creada a la derecha de la original y mantendr
sus mismas propiedades.
Para eliminar una columna pulsamos el botn
Eliminar columna y sobre
la cabecera de la columna a borrar hacemos un clic.
Si queremos mover una columna hacia la izquierda pulsamos el botn

En cambio, si queremos mover la columna hacia la derecha pulsamos el


botn
.
Para aumentar el ancho de una columna pxel a pxel, activamos el botn
y vamos haciendo clic sobre la cabecera de la columna. De igual modo,
con el botn
reducimos el ancho pxel a pxel.
Con los botones copiar y pegar condiciones-fuentes (
) copiamos las
listas de colores y fuentes condicionados que tengamos definidas en la

Copiar y pegar condiciones colores - fuentes

116 117

VELAZQUEZ VISUAL

pestaa cuerpo de las propiedades de una columna de rejilla (casilla Otros).


En los apartados siguientes veremos los botones que faltan.

Cambiar las propiedades de una columna


Propiedades columna

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:

PROPIEDADES DEL CUERPO

Contenido: presenta los campos de la tabla de datos asociada a la rejilla.


Los campos enlazados a una tabla de datos maestra estn identificados
con un pequeo botn + con el que podemos desplegarlos.
Manual: casilla de verificacin que conmuta entre la lista arbolada de los
campos de la tabla y el modo manual. En este modo son introducidos los
datos manualmente mediante una cadena de formato. Para ayudarnos en
la creacin de la cadena podemos utilizar el Asistente para la edicin de cadenas de formato.
Fuente: aqu especificamos la fuente a utilizar en la columna de entre las incluidas en las propiedades de la rejilla.

Desarrollo bsico
de una aplicacin

118 119

VELAZQUEZ VISUAL

Color Texto: aqu seleccionamos el color para el texto. Si activamos el


check Otros, obtendremos la ventana Lista de colores y fuentes condicionados. En ella, al darle al botn insertar, aparecer la ventana Colores y
fuente condicionados, en la que podremos decidir el color del fondo y qu
fuente y de qu color vamos a usar segn la condicin que queramos (para introducir la condicin disponemos del asistente para la edicin de frmulas). Se tomar como color de fondo por defecto el especificado en las
propiedades de la rejilla.

Alineamiento del texto: seleccionamos aqu el alineamiento que queramos:


Horizontal o Vertical. Con Horizontal podremos alinear el texto con respecto al ancho de la celda a la izquierda, centrado, a la derecha o justificado.
Con Vertical podremos alinear el texto con respecto al alto de la celda en la
parte superior, en la inferior o en la lnea base.
Multilneas: al activar esta casilla, el contenido se repartir en varias lneas
si no entra en una sola.
Acumulador: activa la acumulacin parcial de la columna, esto es, en cada
fila aparece la suma de s misma con todas las anteriores.
Ancho variable: si activamos esta opcin para una columna determinada, en
tiempo de ejecucin sta se expandir o se reducir segn sea el tamao
de la ventana y de la resolucin del monitor. Si una columna ha sido definida como de ancho variable, en la ltima fila de la pantalla de edicin de rejillas se mostrar, junto al ancho en pxeles de la misma, el smbolo >>.
Editable: activada esta opcin, si previamente la hemos activado en las propiedades de la rejilla, en ejecucin el usuario final podr modificar directamente sobre la rejilla el valor del campo del registro sobre el que est posicionado. Para comenzar la edicin de una lnea el usuario tendr que pulsar la barra espaciadora sobre ella. Con el tabulador se podr mover entre
los distintos campos editables de una lnea.

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

Botn men: slo vlido para columnas de edicin de campos enlazados


a maestro. Si esta propiedad est activada, en tiempo de ejecucin al editar una celda se ver un botn que, al ser pulsado, desplegar un men
que permitir disparar un localizador de maestro, presentar un formulario
de altas de maestro o editar la ficha de maestro. El localizador y los formularios de alta y de edicin sern asociados en esta misma pestaa de
Edicin.
Al perder el foco: para asociar un proceso de prdida de foco en rejillas de
edicin directa y as poder realizar validaciones. Si en el proceso utilizamos
la funcin de procesos Retorno NO, se cancelar el avance del control y el
foco permanecer en la celda que haba lanzado el proceso.
Maestro: si en el cuerpo de la columna que hemos definido como editable
se selecciona un campo enlazado a una tabla de datos maestra, aqu tendremos que especificar cul es el maestro a editar. Esta opcin slo estar
activa si se trata de un campo enlazado a maestro.
Rejilla localizar: esta opcin slo estar activada si se trata de una columna
que contenga un campo enlazado a maestro. Nos permite lanzar un localizador en tiempo de ejecucin para poder localizar el registro maestro.
Formulario alta: esta opcin slo estar disponible si se trata de una columna editable de un campo enlazado a maestro. Permite disparar, en tiempo de ejecucin, el formulario especificado en el parmetro para dar de alta un nuevo registro maestro.
Formulario mod: opcin slo disponible si se trata de una columna editable
de un campo enlazado a maestro. Permite disparar, en tiempo de ejecucin,
el formulario especificado en el parmetro para editar la ficha del registro
maestro enlazado.
Campo que recibe el dato: esta opcin slo estar disponible cuando el
campo a editar sea de tipo frmula. Si la modificacin del contenido de un
campo frmula implica la modificacin de un campo que intervenga en ella,
habr que especificar cul es este campo que se ha de recalcular. Por ejemplo, si tenemos un campo frmula que calcula el PVP ms el IVA, el campo
PVP tendra que ser el campo a incluir en este parmetro.
Frmula inversa: en el caso de que se haya especificado un campo en el parmetro anterior, aqu especificaremos la frmula que se ha de ejecutar para modificar dicho campo.

04
Propiedades de pie:

PROPIEDADES DE PIE

Contenido: lista desplegable con las opciones siguientes:


Sin contenido: pie sin contenido.
Texto: texto para el pie. Introduciremos la cadena de formato en el control
de edicin situado bajo la lista desplegable.
Suma acumulada de toda la columna: presenta la suma de toda la columna.
Frmula absoluta: expresin de tipo frmula que se introduce en el control
de edicin situado bajo la lista desplegable. Esta frmula se calcula despus de haber sumado los totales de los pies de las dems columnas. Para operar con el valor del pie de otra columna, usamos la variable local X
en la frmula, donde X es el nmero de columna que tenga un pie acumulado (este nmero lo podremos encontrar a travs del asistente de edicin
de frmulas, en el apartado de variables locales. Por ejemplo, 3 hace referencia al pie de la tercera columna de la rejilla). Si la columna X fuese
cambiada de posicin, por ejemplo, la columna 3 pasa a ser la 4, en los pies
donde se hiciese referencia a la misma los cambiara el programa por su
nueva posicin: 4. Para obtener el nmero de filas de la rejilla usamos la
variable local n (no lleva prefijo/sufijo) (Ej.: si deseamos multiplicar el valor

Desarrollo bsico
de una aplicacin

122 123

VELAZQUEZ VISUAL

del pie de la tercera columna por el nmero de filas de la rejilla, la expresin


correcta sera: 3 * n).
Frmula acumulable: expresin de tipo frmula. La frmula especificada ser calculada por cada registro de la rejilla.
Suma acumulada de los marcados: presenta la suma de todos los registros
marcados en una rejilla con multiseleccin.
Suma acumulada de los no marcados: presenta la suma de todos los registros que no estn marcados en una rejilla con multiseleccin.
Color Valores Positivos: color para el pie de la columna cuando tiene un valor numrico positivo.
Color Valores Negativos: color para el pie de la columna cuando tiene un valor numrico negativo.
Columna de multiseleccin: en esta seccin tendremos que especificar
qu dibujos queremos utilizar para su visualizacin en ejecucin. Podremos optar entre los estndar de Velzquez (Botn o Check box) o uno personalizado, en este ltimo caso hemos de hacer clic sobre la opcin Dibujo y seleccionar dos dibujos que tendremos que haber incluido previamente en el proyecto uno para el estado de seleccin y otro para el estado de no seleccin.

04

DIBUJOS PARA COLUMNA DE MULTISELECCIN

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.

Dimensiones de una rejilla


El ancho total y el nmero de columnas de la rejilla se ven en el cuadro de
propiedades de la rejilla (no se establecen, son controles de solo lectura).

Desarrollo bsico
de una aplicacin

124 125

Ancho del Ttulo


Ancho del contenido
Coloreado rpido

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

Coloreado rpido de Rejillas


Pulsando el botn
Coloreado rpido, o a travs de la opcin Rejilla/Coloreado Rpido se puede cambiar el color tanto de las cabeceras como del
cuerpo y las lneas de una rejilla. Aparecer una lista de combinaciones de
colores en la que slo tendremos que elegir un elemento para que todos los
colores de la rejilla sean cambiados. En la parte inferior de la misma ventana se muestra un ejemplo de la combinacin de colores seleccionada.

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

e A continuacin crearemos un objeto rejilla siguiendo los puntos:

Nueva carpeta
Nuevo objeto
Nuevo objeto del tipo seleccionado

En el rea Objetos (parte derecha del Editor de Proyectos) pulsamos el


botn Nueva carpeta
situado en la barra de herramientas (o bien seleccionando desde la barra de mens la opcin Objetos/Nuevo/Carpeta
/Hermana de la actual).
Aparece la ventana Carpeta de objetos, en la que seleccionamos la
carpeta Rejillas. Como ttulo escribimos Tareas y pulsamos el botn
Aceptar.
Velzquez Visual crea la carpeta Tareas en el rea Objetos. Dentro de ella
incluiremos las rejillas que vayamos creando.
Con la carpeta Tareas y la tabla TAREAS (en el panel izquierdo) seleccionadas, pulsamos el botn
Nuevo objeto de la barra de herramientas (o bien a travs de la barra de mens, seleccionamos la opcin Objetos/Nuevo/Objeto).
Dentro de la ventana Galera de objetos, seleccionamos el objeto Rejilla
visor de tablas.
Al seleccionar el objeto y pulsar el botn
Nuevo objeto del tipo seleccionado Velzquez Visual muestra la ventana Propiedades de la rejilla: Tareas.

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.

Pulsando el botn Vuelve a funcin modificar


y a continuacin el botn Ancho del ttulo
(ambos situados en la barra de herramientas de
edicin) conseguimos que pueda visualizarse el texto completo de la columna Cdigo y el de la columna Realizada haciendo clic sobre el rea
correspondiente a la cabecera de cada columna.
Ahora pulsamos el botn Coloreado rpido
y seleccionamos dentro
de la ventana Paletas para rejillas la paleta Azul pastel.

Vuelve a funcin modificar


Ancho del ttulo
Coloreado rpido

128 129

VELAZQUEZ VISUAL

Al pulsar el botn Aceptar, la rejilla tendr el siguiente aspecto

A continuacin vamos a introducir un pie en la rejilla que va a mostrar el


nmero total de tareas y a continuacin el texto Tareas. Para ello pulsamos el botn Propiedades del objeto de la barra de herramientas de
edicin para volver a mostrar la ventana Propiedades de la rejilla. En di-

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.

e Ejemplo: Vamos a crear otra rejilla


Supongamos una aplicacin para un videoclub. En ella crearemos una rejilla llamada MOSTRAR-VDEOS, en la que presentaremos el contenido de
los campos, TTULO, IDIOMA, TIPO y UNIDADES referentes a cada pelcula. Para ello utilizaremos las carpetas de objetos, de modo que el proyecto
quede bien estructurado.

04

Desarrollo bsico
de una aplicacin
e

Veremos la ventana de propiedades tecleando la combinacin Alt + Intro o


pulsando el botn correspondiente de la barra de herramientas.

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

En la regin Campos seleccionables hacemos doble clic sobre los campos


que vamos a incluir en la rejilla e irn apareciendo en la regin Campos seleccionados. Aqu tambin asociamos las fuentes a las distintas partes de
la rejilla.
Pulsando el botn Crear segn seleccin pasaremos a la pantalla de edicin
de rejillas.

Pinchando en la cabecera de cada columna accedemos a sus propiedades


de cabecera, cuerpo y pie. Para cada columna hemos de escribir el contenido de la cabecera en la regin Ttulo de la pestaa cabecera, mientras que
el campo que va a llevar el cuerpo de la rejilla es el seleccionado en la regin Contenido de la pestaa Cuerpo.

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

COLUMNAS DE ANCHO VARIABLE

Para dar rpidamente un tono de color a la rejilla usamos el botn


coloreado rpido, seleccionando el que queramos en la ventana Paletas para rejillas que Velzquez presenta.

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.

4.4.3. Formulario de Edicin Fichas


Los formularios son los objetos que se utilizan para introducir, modificar y
ver los datos de los diferentes registros de una tabla de datos. Un formulario va asociado a una tabla de datos del proyecto y podr ser usado para
realizar altas, bajas y modificaciones.

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.

Creacin del formulario


Para crear un formulario seleccionamos Formulario de edicin de fichas
dentro de la Galera de objetos. Aparecer el cuadro de dilogo Propiedades formulario: FORMULARIO1.

Desarrollo bsico
de una aplicacin

136 137

VELAZQUEZ VISUAL

Las propiedades de la ventana son las siguientes:


Tabla de datos: es la tabla a la que est asociado el formulario.
Nombre: el que vamos a darle al formulario. Por defecto Velzquez le pone
el nombre singular de la tabla.
Proceso a ejecutar al crearse un formulario: permite seleccionar un proceso que se ejecutar antes de la creacin y presentacin en pantalla del formulario.
Proceso a ejecutar al iniciar o cambiar de ficha: permite seleccionar un
proceso que se ejecutar cada vez que cambie la ficha presentada en el
formulario. Por ejemplo: si hacemos doble clic sobre una rejilla, primero
es llamado el proceso anterior a la creacin del formulario y luego el de
inicio o cambio de ficha, que es anterior a la creacin de una ficha. Si
posteriormente se pulsa un botn para moverse a otra ficha, slo se lanza el proceso a ejecutar al iniciar o cambiar de ficha (el anterior a la creacin no, pues el formulario ya ha sido creado y en este caso slo cambia
la ficha).
Una vez hayamos rellenado los controles de edicin del cuadro de dilogo,
aceptamos y aparecer el objeto formulario en la regin de objetos del editor. Si hacemos doble clic sobre el objeto formulario, podremos editarlo.

Propiedades del formulario


Se obtienen dentro del Editor de Formularios al seleccionar la opcin de
men Edicin/Propiedades o en el cuadro de dilogo de propiedades de
controles, en las pestaas Formulario y Fuentes (tambin se muestra la ventana de propiedades al hacer doble clic sobre el fondo del formulario o sobre un rea vaca de los dos paneles del editor de formularios).

04

VENTANA PROPIEDADES DE: FORMULARIO

Las propiedades del formulario son:


Nombre: nombre que vamos a dar al formulario. Cuando el formulario se utiliza dentro de un control separador (pestaa), podemos introducir un acelerador
dentro del nombre del formulario. Para ello colocamos el smbolo & delante de
una letra del nombre del formulario, la letra en cuestin se convierte en un acelerador, permitiendo que cuando el usuario pulse la tecla Alt simultneamente
con la letra siguiente al smbolo & (en tiempo de ejecucin la letra se ve subrayada) el foco pase al formulario apuntado por el acelerador. De esta forma
el usuario evita tener que recurrir al ratn para cambiar de formulario. Debemos escoger las letras que utilizamos como aceleradores de tal forma que no
se creen aceleradores con letras repetidas dentro de un mismo formulario.
Si el formulario est en cuadro de dilogo, en ejecucin su ttulo ser el
Nombre que hayamos escrito. Si est a pantalla completa el ttulo ser el
nombre singular de la tabla a la que est asociado. Lo anterior no es vlido
si hemos introducido una frmula como ttulo opcional del formulario, mostrndose entonces la expresin frmula.
Siempre cuadro dilogo: permite seleccionar la forma de presentar el formulario: ocupando toda la pantalla o como cuadro de dilogo.
Especial para bsqueda: configura el formulario para usarlo en una bsqueda. Pulsar esta casilla de verificacin produce el mismo resultado que
haber elegido el objeto Formulario para bsquedas de la Galera de Objetos.
Condicin activo: al activar esta opcin tenemos que especificar una condicin (frmula), de modo que si no se cumple no se podr modificar ningn
campo del formulario. Si queremos que un usuario con un nivel de privilegio
inferior a 50 no pueda editar un formulario, activamos esta opcin y en la frmula especificamos: v > 49. (v es la variable del sistema que devuelve el nivel de privilegio del usuario actual). Cuando no se cumple la condicin activo, todos los controles del formulario estarn inactivos, excepto los botones
que disparen las funciones: Cancelar, Moverse a hermano y Ayuda, adems
de las rejillas de histrico y de proceso.

Desarrollo bsico
de una aplicacin

138 139

VELAZQUEZ VISUAL

Tecla Intro: permite seleccionar la accin a realizar al pulsar la tecla Intro: el


avance del cursor o el cierre del formulario aceptando los cambios hechos.
Ventana: ttulo y posicin: para establecer la posicin en que se ha de mostrar el formulario en la pantalla en tiempo de ejecucin. Por defecto estar
activada la opcin Centrado, que abrir el formulario centrado en la ventana en que se est ejecutando el programa. Si desactivamos esta opcin podemos especificar la posicin con respecto al eje horizontal (x) y al eje vertical (y), de esta forma siempre ser presentado a la distancia especificada
desde el borde de la ventana. Tambin se pueden modificar las dimensiones del formulario utilizando las teclas de desplazamiento del cursor, mientras se mantiene pulsada la tecla de las Maysculas. Otra forma de dimensionarlos es con el ratn, haciendo clic en los manejadores y arrastrando.

Ttulo opcional: podemos cambiar el ttulo de la ventana de un formulario


activando la opcin Ttulo opcional ventana, y mediante el editor de frmulas podemos hacer que aparezca el contenido de uno o varios campos, de
variables globales, etc.
Color de fondo: dentro del men Edicin se encuentra la opcin Color de
fondo donde podemos seleccionar el que sea de nuestro gusto para el formulario actual.
Tapiz de fondo: permite seleccionar un grfico para utilizarlo como fondo
del formulario. La casilla de verificacin Mosaico permite elegir entre presentar el grfico centrado o en forma de mosaico. Si el dibujo ha sido definido con fondo transparente, el mosaico se crear con fondo transparente
tambin.
Para seleccionar las fuentes a utilizar en el formulario hemos de trabajar con
el cuadro de dilogo siguiente:

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

Tambin contamos con los botones subir y bajar


den de las fuentes en el formulario.

, para cambiar el or-

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.

Controles del formulario


Se encuentran situados bajo la barra de herramientas y son los siguientes:
Modo de edicin: este botn se usa para mover controles o para cambiar su tamao.
Caja de grupo: se trata de una caja con un ttulo, utilizada para agrupar
controles dentro de ella.
En las propiedades de la caja de grupos hemos de escribir el texto a presentar como ttulo en la caja.

140 141

Separador esttico

VELAZQUEZ VISUAL

Separador esttico: este control presenta una lnea en tres dimensiones


con un texto incrustado. En sus propiedades seleccionamos el ttulo a presentar y el alineamiento del texto con respecto a la lnea.

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

Lista de campos: de la lista seleccionamos el campo al que vamos a asociar el control.


Texto Tool Tip: permite incluir un texto que se presentar en ejecucin cuando el usuario pase con el puntero del ratn por encima del control.
Este control se puede asociar a los siguientes tipos de campo:
Campos enlazados con tablas de datos maestras: permite recorrer la tabla de datos maestra hacia arriba y hacia abajo y visualizar el contenido
de cada registro en el control de edicin del campo del formulario al que
se le hayan asociado los Microescrollers. El usuario final recorrer la lista maestra pulsando las teclas de movimiento del cursor arriba y abajo.
Campos numricos: permite incrementar o reducir el valor de un campo
numrico en tanta cantidad como se haya especificado en el parmetro
Valor a Incrementar, en la pestaa Ms estilos.
Campos de tipo fecha.
Calendario: visualiza un calendario grfico con los colores y el tipo de
letra que establezcamos en sus propiedades. stas son:
Campo: seleccionamos esta opcin si queremos editar un campo de tipo fecha
que seleccionamos de la lista de campos fecha que se muestra. Si vamos a
modificar un campo fecha, el calendario nos muestra la fecha contenida en el
campo. Si vamos a dar de alta un campo fecha, el calendario muestra el contenido inicial del campo (si lo tiene), en caso contrario muestra la fecha del da.
Si el control calendario no tiene marcada la casilla de verificacin Slo lectura
en la pestaa de Estilos, cambiar el contenido del campo al modificar la fecha.
Variable: seleccionamos esta opcin si queremos editar una variable global
de tipo fecha. En la lista de variables globales slo aparecern aquellas que
sean de este tipo.
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase con el puntero del ratn sobre el control.

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.

MSCARAS FECHA / HORA

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:

FUNCIONES A DISPARAR POR UN BOTN CON TEXTO

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

Aceptar: acepta el formulario con los cambios realizados. Admite asociar


procesos anterior y posterior a la ejecucin de la funcin. Si se asocia un
proceso posterior a la pulsacin del botn, ste slo se ejecutar despus
de que el usuario haya aceptado el formulario, no cada vez que se d de alta, edite o elimine un histrico.
Eliminar: borra del disco la ficha del formulario. Admite asociar procesos anterior y posterior a la ejecucin de la funcin. Si se asocia un proceso posterior a la pulsacin del botn, ste slo se ejecutar despus de que el
usuario haya aceptado el formulario.
Aceptar /Cancelar /Eliminar controlado: igual a los anteriores excepto que
Velzquez Visual pide confirmacin al usuario para realizar la tarea. Admiten
asociar procesos anterior y posterior a la ejecucin de la funcin. Si se asocia un proceso posterior a la pulsacin del botn Aceptar controlado, ste
slo se ejecutar despus de que el usuario haya aceptado el formulario, no
cada vez que se d de alta, edite o elimine un histrico. Si el formulario tiene una condicin de activo y sta no se cumple, el botn que dispare la funcin Cancelar controlado estar activo para que el usuario pueda cerrar la
ficha.
Subformulario ficha actual: visualiza el formulario seleccionado con informacin adicional del registro. El formulario debe estar asociado a la misma
tabla de datos. Si activamos la opcin Alinear formulario con el botn, podremos hacer que el formulario siempre se dispare o bien alineado a la izquierda, centrado o a la derecha del botn y encima o debajo del mismo.
Alta ficha maestro: da un alta en una tabla de datos maestra de la actual. La
tabla maestra se elige a travs de la lista desplegable Campos mientras que
el formulario con el que dar el alta se elige en la lista desplegable Formularios. Por ejemplo, supongamos las tablas CLIENTES (maestro) y TAREAS
(histrico). Al dar de alta una tarea, cuando llegamos al campo Cliente, si
ste no existe podemos darlo de alta desde la tarea. Si activamos la opcin
Alinear formulario con el botn, podremos hacer que el formulario siempre
se dispare o bien alineado a la izquierda, centrado o a la derecha del botn
y encima o debajo del mismo.
Edicin ficha maestro: muestra el registro de la tabla maestra en el formulario seleccionado en la lista desplegable Formularios, pudiendo ser editado. Si activamos la opcin Alinear formulario con el botn, podremos hacer
que el formulario siempre se dispare o bien alineado a la izquierda, centrado o a la derecha del botn y encima o debajo del mismo.
Localizar maestro: presenta el localizador seleccionado de la tabla maestra.
En una lista desplegable veremos los ndices por los que localizar un registro. Si lo atrapamos, el registro ser capturado en la ficha de origen, con lo
que el campo enlazado apuntar al registro seleccionado.
Atrapar contenidos campos: esta funcin de botones permite atrapar el valor de uno o varios campos, a uno o varios campos de la ficha editada. Por
ejemplo, en la tabla CLIENTES existen tres campos, uno para cada porcen-

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

cutado se realice un borrado de los mismos. Esta propiedad no es vlida


para las rejillas de histrico, pues siempre visualizan todos los registros histricos del maestro editado, y slo podrn ser quitados de la lista si son borrados fsicamente del disco.
Ejecutar proceso Rejilla: Contra los no seleccionados: para rejillas con multiseleccin. Ejecuta un proceso sobre todos los registros que no estn seleccionados en 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 deseamos 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 ejecutado se realice un borrado de los mismos. Esta propiedad no es vlida para las rejillas de histrico, pues siempre visualizan todos los registros histricos del maestro editado, y slo podrn ser quitados
de la lista si son borrados fsicamente del disco.
Nota: los controles de formularios son refrescados cuando se acta directamente sobre ellos, por ejemplo al escribir directamente en un control de
edicin o al dar de alta desde una rejilla de histrico. Si desde un botn ejecutamos un proceso que modifica datos de la ficha o del histrico o histricos editados en rejillas, para refrescarlos activamos al botn las propiedades Refresca cambios en ficha (fuerza el refresco de la ficha) y / o Refresca
cambios en histricos (fuerza el refresco en histricos). Lo que realmente
hace la primera de estas propiedades es forzar la grabacin de la ficha en
disco y su posterior lectura.

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.

Aceptar sin cerrar formulario: en altas acepta, guarda cambios y presenta el


formulario vaco para dar alta nuevamente. Admite asociar procesos anterior y posterior a la ejecucin de la funcin. Si se asocia un proceso posterior a la pulsacin del botn, ste slo se ejecutar despus de que el usuario haya aceptado el formulario, no cada vez que se d de alta, edite o elimine un registro.
Aceptar controlado sin cerrar formulario: igual que Aceptar sin cerrar formulario excepto que Velzquez Visual pide confirmacin al usuario para
aceptar los datos. Admite asociar procesos anterior y posterior a la ejecucin de la funcin. Si se asocia un proceso posterior a la pulsacin del botn, ste slo se ejecutar despus de que el usuario haya aceptado el formulario.
Ayuda: permite personalizar las ayudas. Podremos presentar un ndice de
contenido, un tpico o un tpico en pop-up. Para ello tendremos que crear
un archivo de ayuda con un programa adecuado para ello, en el que especificaremos cules sern los tpicos creados previamente en un archivo de
ayuda .hlp y su numeracin. Si el formulario tiene una condicin de activo y
sta no se cumple, el botn que dispare esta opcin estar activo para que
el usuario pueda consultar igualmente la ayuda.

04

Desarrollo bsico
de una aplicacin

Localizar en cesta de la compra: es como la funcin Localizar Maestro,


pero en vez de presentar la rejilla con todos los registros del maestro, slo
presenta los registros que se hayan incluido en una cesta de la compra, en
tiempo de ejecucin, definida para la tabla maestra enlazada. En primer lugar se especificar el campo enlazado y en segundo lugar cul de las cestas de la compra definidas para la tabla se va a utilizar.
Moverse a hermano: esta funcin le permitir crear botones en un formulario para visualizar en el mismo formulario un registro anterior o un registro
siguiente (hermanos contiguos) al actual. Su nico parmetro es un campo
de tipo enlazado a hermano contiguo. Si el formulario tiene una condicin
de activo y sta no se cumple, el botn que dispare esta opcin estar activo para que el usuario pueda consultar la ficha anterior o siguiente.
Botn con dibujo: permite ejecutar procesos y funciones como en el caso del botn con texto. La funcin a disparar por el botn debe especificarse en la pestaa Comando. Este control utiliza los dibujos incorporados
al proyecto. Se crear un objeto dibujo por cada estado del botn (normal,
pulsado, con el foco e inactivo). Si asignamos un solo dibujo perder la apariencia de botn y parecer un dibujo esttico cualquiera. Sus parmetros
generales son:

Botn con dibujo


Botn men

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

botones a incrustar en l han de estar seguidos en el orden de tabulacin


en el formulario.
Si el botn incrustado es de tipo texto, se tomar como ttulo de la opcin
del men desplegable el texto contenido del botn. Si es de tipo dibujo, se
tomar como ttulo de la opcin del men desplegable el texto tooltip escrito en sus propiedades.
Por ejemplo: en un formulario existen tres botones y deseamos agruparlos
en uno solo. Para ello situamos en el formulario un control de tipo Botn
Men y establecemos el siguiente orden de tabulacin para los botones:
Botn Men, Botn 1, Botn 2, Botn 3. Editamos las propiedades del Botn 1 y en la pestaa Aspecto activamos la opcin Men desplegable. Repetiremos esta operacin con los botones 2 y 3.
Url

Url: este control permite disparar la url que se especifique en uno de sus
parmetros. Sus parmetros generales son:

RadioButton

Texto: texto que presentar el control en el formulario (es una frmula).


Dato fijo: la Url a disparar (es una frmula).
En tiempo de ejecucin, el control presentar el texto especificado en el primer parmetro. Al hacer clic sobre l se abrir, en el Explorador Web de Velzquez, la url especificada en el segundo parmetro.
RadioButton (Botn de radio): estos botones se agrupan para pasar diversos valores a un mismo campo dependiendo del Botn de Radio seleccionado. Sus propiedades generales son:
Campo: seleccionamos esta opcin para asociar un campo a un botn de
radio.
Variable: seleccionamos esta opcin para asociar una variable global a un
botn de radio.
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 seleccionaremos el campo o la variable
global que deseamos asignar al control.
Texto: texto que se visualizar junto al control. Es una cadena de formato y
podremos utilizar tanto una constante como el contenido de un campo o de
una variable global. Estarn disponibles los aceleradores de teclado, situando el smbolo & delante de la letra que deseemos utilizar como acelerador. Los aceleradores son dinmicos, es decir, pueden utilizarse con variables globales, pudiendo aceptar expresiones tales como &$IVA1$.
Dato fijo: cada botn de radio se asocia al mismo campo de datos, el cual
ser modificado con el contenido que especifiquemos en este cuadro de

04

Desarrollo bsico
de una aplicacin

edicin. Se ha de especificar una cadena de formato y podremos utilizar


constantes, campos o variables. Basta con que uno de ellos tenga seleccionada la propiedad Seleccin con Tab para que el cursor se posicione sobre el seleccionado. Una vez seleccionado, podemos usar las flechas de
desplazamiento del cursor para moverse entre los botones de radio y seleccionarlos.
Check Box (casilla de verificacin): se usa para editar campos booleanos o variables del mismo tipo. Sus parmetros generales son:

Check Box
Rama de rbol

Campo: seleccionamos esta opcin para asociar un campo al control.


List Box

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 seleccionaremos el campo o la variable
global que deseemos asignar al control. En la lista de campos o variables
seleccionables slo se mostrarn los que sean de tipo booleano.
Texto: texto que se visualizar junto al control. Es una cadena de formato y
podremos utilizar tanto una constante, como el contenido de un campo o
de una variable global. Podemos utilizar aceleradores de teclado, situando
el smbolo & delante de la letra que va a actuar de acelerador.
Rama de rbol: este control sirve para visualizar el contenido de una tabla arbolada maestra de la tabla de datos del formulario actual. Su atribulo
es de solo lectura y muestra la rama completa de la ficha maestra seleccionada.
Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el
usuario pase el puntero del ratn sobre el control.
Campo: identificador de un campo enlazado a una tabla maestra arbolada.
Slo aparecern campos enlazados a tablas maestras arboladas en el combo.
rbol: debemos seleccionar un objeto rbol asociado a la tabla de datos del
campo especificado en el parmetro anterior.
List Box: muestra una caja con flechas arriba y abajo que permiten visualizar su contenido. Sus parmetros generales son:
Campo: seleccionaremos esta opcin para asociar un campo al control. Debe ser un campo enlazado a una tabla de datos esttica.
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.

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

Combo Box (Lista desplegable): permite ver los registros contenidos en


el control a travs de una lista desplegable. Sus parmetros generales son:

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

Multilneas cabecera: permite repartir todos los formularios del separador en


varias lneas. Dependiendo del nmero de formularios usar ms o menos lneas. En caso de no usar esta opcin y asignar un nmero de formularios que
no entren en el rea del separador, aparecern los botones
en el momento de la ejecucin, permitiendo desplazar las pestaas horizontalmente.

Grfico

Hojas dinmicas: marcando esta casilla podemos seleccionar un proceso


anterior a la creacin del formulario que decidir si una pestaa ha de
presentarse o no.
Si queremos que un determinado subformulario incluido en un separador no sea
visto si no se cumple una determinada condicin, hemos de marcar la casilla hojas dinmicas y asociar al formulario un proceso a ejecutar al crearse el formulario en el que se evale la condicin, si sta no se cumple, la funcin a ejecutar para no abrir dicho formulario ser Set retorno proceso=NO, esta funcin le dir al
separador que la pestaa correspondiente al subformulario no debe presentarse.
Para establecer alguna condicin de activo a una pestaa de un separador
hemos de hacerlo en las propiedades del subformulario que se vaya a incluir en la misma.
Aspecto cabecera:
Texto slo: slo se muestra el texto con el nombre del formulario.
Texto + Imgenes: muestra el texto con el nombre del formulario y el icono
que corresponda del dibujo multi-iconos seleccionado en la lista desplegable Multi-iconos.
Imgenes slo: slo se muestran los grficos asociados en la lista desplegable Imgenes.
Multi-iconos: si vamos a utilizar iconos en la cabecera de los separadores, seleccionamos el objeto multi-icono que hayamos creado con ese propsito.
Si los nombres de los formularios incluidos en el control Separador contienen un Acelerador (&), se puede saltar a cualquier formulario, pulsando la
tecla Alt de forma simultnea a la letra subrayada por el acelerador. Esta
tcnica evita que el usuario tenga que recurrir al ratn para seleccionar el
formulario. Para ello, en el Nombre del formulario situamos el smbolo & delante de la letra que deseemos utilizar como acelerador.
No se recomienda la utilizacin de separadores anidados, es decir, unos
dentro de otros, debido a la prdida de funcionalidad.
Grfico: presenta la informacin de una hoja de clculo. Slo podremos
visualizar una hoja de clculo de un histrico de la tabla asociada al formulario. 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.

04

Desarrollo bsico
de una aplicacin

Histrico: tabla de datos histrica de la que se deseamos presentar el grfico.


Hoja calc: objeto hoja de clculo del histrico que se desea visualizar.
Grfico: tipo de grfico que vamos a utilizar para visualizar la informacin.
Los tipos de grficos que incorpora Velzquez son: Lneas, Barras verticales, Barras horizontales, Barras 3D verticales, Barras 3D horizontales, Gant
vertical, Gant horizontal, Tartas, Rejilla de valores.
Objeto texto: edita el contenido de un campo de tipo objeto texto de la
ficha en curso. Puede incluirse en un subformulario y editar su contenido.
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.
Campo: aqu especificamos el campo a editar. Pulsamos el botn Cambiar
y aparecer una lista con todos los campos de tipo objeto texto de la tabla
del formulario y de sus tablas maestras. Seleccionamos el que deseemos
editar.
En ejecucin, para aadir un salto de lnea en un control de este tipo, usaremos la combinacin de teclas Ctrl.+Intro.
Objeto dibujo: edita el contenido de un campo de tipo objeto dibujo de
la ficha en curso. Puede incluirse en un subformulario y editar su contenido.
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.
Campo: para especificar el campo a editar pulsamos el botn Cambiar,
apareciendo una lista con todos los campos de tipo objeto dibujo de la tabla del formulario y de sus tablas maestras. Seleccionamos el que deseemos editar.
Si se edita un campo Objeto dibujo de maestro no podremos modificar su
contenido. Para hacerlo tendramos que editar la ficha del maestro. Esto
mismo es aplicable al resto de los controles de edicin de campos objeto.
Modo ver: modo de visualizacin en el que se van a presentar las imgenes
en tiempo de ejecucin. Los modos de visualizacin son:
Encoger/Estirar rea Completa: cambiar el ancho y el alto de la imagen para adaptarla a la altura y anchura del control. Si no son proporcionales el alto y el ancho de la imagen a la altura y la anchura del control, la imagen se
ver deformada.
Tamao Original: la imagen se presentar en su tamao original, empezando desde el borde superior izquierdo del control. Si sta es mayor que el tamao del control se ver truncada.

Objeto texto
Objeto dibujo

156 157

VELAZQUEZ VISUAL

Tamao Original Centrado: la imagen se visualizar con su tamao original,


pero centrada dentro del rea que el control ocupe. Si dicha imagen es mayor que el tamao del control se ver truncada.
Encoger/Estirar Proporcionado: la imagen se aumentar o reducir para
adaptarse al tamao del control, pero conservando siempre la proporcin
alto / ancho. Si la imagen es muy pequea y el control es muy grande, sta se ver distorsionada al estirarse para adaptarse al tamao de ste.
Mosaico: la imagen se presentar en su tamao original pero a modo de
mosaico, ocupando toda el rea del control.
Tamao original/Encoger proporcionado: la imagen se mostrar en su tamao original o se reducir de forma proporcionada para adaptarse al tamao del control, en el caso que ste sea menor que el tamao de la imagen. sta es la opcin ms aconsejable.
Desde una aplicacin final de Velzquez el usuario podr obtener una imagen va twain (escner) para pegar en un control de este tipo. Para ello el
formulario no puede estar definido en modo cuadro de dilogo, tiene que
estar definido en modo vista (a pantalla completa).
Objeto texto enriquecido
Objeto OLE

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:

E-mail

Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el


usuario pase el puntero del ratn sobre el control.
Campo: para especificar el campo a editar pulsamos el botn Cambiar y
aparecer una lista de todos los campos de tipo objeto texto enriquecido
de la tabla del formulario y de sus tablas maestras. Seleccionamos el que
deseemos editar.
Objeto OLE: este control permite incrustar cualquier objeto OLE en un formulario. En tiempo de ejecucin podemos insertarlo haciendo doble clic con el
botn izquierdo del ratn sobre el control, o bien pulsando el botn derecho y
seleccionando la opcin Editar objeto en el men de contexto que aparece; se
presentar el cuadro de dilogo estndar Insertar objeto y en l el usuario seleccionar el tipo de objeto que desee incrustar. 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.
Campo: para especificar el campo a editar pulsamos el botn Cambiar y
aparecer una lista de todos los campos de tipo objeto OLE de la tabla del
formulario y de sus tablas maestras. Seleccionamos el que deseemos editar.
E-mail: para edicin de campos de tipo Objeto E-mail. Permite editar un
mensaje de correo electrnico. Sus propiedades 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

Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el


usuario pase el puntero del ratn sobre el control.
Frmula contenido: archivo AVI a visualizar. El nombre del fichero se introducir como una frmula, para lo cual contamos con el asistente de frmulas. Como se trata de una frmula, el nombre del fichero tendr que ir entre
comillas.
Por ejemplo, si tenemos en el directorio de la aplicacin un fichero llamado
Pelicula.avi, para incluirlo en el formulario, en frmula tendramos que especificar: d +\\Pelicula.avi (d es una variable en la que guardamos el path
del directorio de la aplicacin).
Si dicho fichero estuviese en otro directorio, tendramos que escribir entre
comillas toda la senda para llegar a dicho documento.
Animacin: es un control esttico que permite incluir un fichero AVI con
las siguientes caractersticas:
Sin sonido.
Con una sola corriente de vdeo.
Sin comprimir o con compresin RLE8.
Debe contener al menos un frame.
Sus parmetros generales son:
Interna: en Velzquez ya se incluye un stock de animaciones que podremos
utilizar en nuestras aplicaciones. Para seleccionar una de ellas tendremos
que especificar Origen Interno. Las animaciones internas de Velzquez son:
Copiar, Mover, Borrar y Buscar.
Externa: si deseamos incluir una animacin propia, seleccionaremos esta
opcin.
Nombre fichero: nombre del fichero AVI que deseamos utilizar como animacin.

158 159

VELAZQUEZ VISUAL

Texto Tool Tip: texto que se presentar en tiempo de ejecucin cuando el


usuario pase el puntero del ratn sobre el control.
Este tipo de animaciones admiten fondo transparente. Para ello basta con
activar el flag correspondiente del cuadro de propiedades y stas tomarn
el color de fondo definido para el formulario. Si estamos utilizando un dibujo de fondo en modo mosaico no se realizar la transparencia, la animacin
utilizar como color de fondo el que estaba definido para el formulario.
No necesitamos darle un tamao a estos controles, el programa ya ajusta
el tamao de los mismos segn sea el tamao de la animacin, excepto
cuando activamos el flag Centrado; en este caso tendremos que dar tamao al control para que Velzquez lo centre dentro del marco. Obviamente, si
definimos un tamao de marco muy pequeo y la animacin tiene mayor tamao, sta se ver truncada.
Html

Html: permite incrustar una URL como control dentro de un formulario.


En el Navegador de Velzquez Visual la barra de navegacin web acta sobre el control cuando ste tiene el foco (atrs, adelante, actualizar...), pero
no la barra de direcciones URL (sta sigue actuando como siempre, al escribir una URL presenta el resultado en una nueva ventana). Las propiedades especficas de este control son:
Frmula contenido: expresin frmula de la URL que presentar el formulario.
Puede ser una constante, una variable global, un campo, etc. Por ejemplo: si
en una ficha de CLIENTES tenemos un campo para almacenar la pgina web
del cliente, podramos incluir en el formulario un control de este tipo (como
frmula especificaramos dicho campo) para visualizar su pgina web.

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.

Cuadro de propiedades de formulario y controles


Para editar las propiedades del formulario y los controles haremos un doble
clic sobre cualquier zona de la pantalla de edicin de formularios. Este cuadro es nico para todos los controles, aunque las propiedades que se
muestren en las pestaas variarn segn el control que est seleccionado.
Podemos mantenerlo abierto permanentemente durante la creacin del formulario.
La tecla Intro cambiar el foco del formulario al cuadro de propiedades y viceversa, mientras que la tecla Esc cerrar el cuadro de propiedades.
Si el cuadro de propiedades ya est abierto, para editar las propiedades de
un control determinado basta con seleccionarlo, o bien con el foco sobre el
formulario y pulsando el tabulador hasta llevar el foco hasta l, o seleccionndolo con un clic del ratn.
Si el cuadro de propiedades est cerrado, para editar las propiedades de un
control determinado basta con seleccionarlo, o bien con el foco sobre el formulario, pulsando el tabulador hasta llevar el foco hasta l y pulsando la tecla Intro, o seleccionndolo con doble clic del ratn.
Una vez cambiada o asignada una propiedad a un control, sta ya se hace
efectiva inmediatamente, por lo que si queremos cancelar la operacin, pulsaremos el botn deshacer de la barra de botones del Editor de Proyectos
(recordemos que la tecla Esc cierra el cuadro de propiedades).
Las propiedades del cuadro estn agrupadas en pestaas, que son:
Formulario y fuentes: aspectos generales del formulario
General: contiene opciones que son especficas de cada control.

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.

Las propiedades de la pestaa Estilos son:


Selec con Tab: permite que el control sea accesible usando la tecla Tab.
Slo lectura: posibilita (desactivado) o impide (activado) la modificacin del
contenido del campo.
Borde: activaremos esta opcin si deseamos remarcar el control con un
borde.
Condicin activo: condicin (expresin frmula) para que el control sea funcional.
Condicin visible: condicin (expresin frmula) para que el control sea visible al usuario.
Pierde foco: proceso a ejecutar cuando el cursor salte a otro control, es decir, cuando pierda el foco.
Gana foco: proceso a ejecutar cuando el cursor se posicione sobre el control.
Doble clic acepta: para controles de tipo calendario, combo box y list box,
de modo que al hacer doble clic sobre el control se acepte y cierre el formulario.
Autopulsado al ganar el foco: exclusiva para botones. Si a un botn se le activa esta propiedad, en tiempo de ejecucin cuando gane el foco, se disparar automticamente la funcin que se haya seleccionado en sus propiedades.
Mscara: es posible definir una mscara de entrada en controles de edicin
(con la que podemos definir formatos de entrada). Activaremos esta propiedad en las propiedades de un control. Disponemos de un control de edi-

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

Password: para controles de edicin. Permitir que cuando sea editado el


campo en tiempo de ejecucin, se muestre el contenido del mismo con asteriscos (*). Esta opcin no estar activa si el control est declarado como
Multilneas.
Refrescar cambios ficha: para todos aquellos botones que ejecuten algn
proceso que no implique el refresco directo del resto de los controles del
formulario, tendremos que activar esta opcin para que se lleve a cabo dicho refresco. Esta opcin lo que hace es grabar la ficha en disco, con lo que
se fuerza su lectura de nuevo.
Refresca cambios histricos: esta opcin estar inactiva si la anterior no ha
sido activada. Implicar el refresco de los controles de histricos que contenga el formulario tras la ejecucin del proceso.
Valor a incrementar: esta opcin slo es visible cuando el control editado es
un microescroll. En ella se especifica el valor en el que se desee incrementar el campo asociado al microescroll.
Inicio semana: para controles de tipo Calendario. Especificar el da de inicio de la semana: lunes o domingo.
Botones arriba y abajo: para campos numricos, tipo fecha o campos enlazados. Permiten que, en tiempo de ejecucin, al pulsar las flechas arriba o
abajo o las teclas del cursor arriba y abajo, se incremente o se reduzca en
una unidad el valor del campo. En campos enlazados a tablas de datos
maestras permiten, en tiempo de ejecucin, que al pulsar las flechas arriba
o abajo o las teclas del cursor arriba o cursor abajo, se vaya recorriendo la
tabla maestra secuencialmente y presentando en el control, con cada pulsacin, el contenido del campo editado de la tabla maestra. Si el control est definido como Multilneas, el usuario tendr que mantener pulsada la tecla Alt mientras pulsa las teclas de cursor arriba y abajo para recorrer la tabla maestra.
Autocompletar: slo vlido para controles de edicin de un campo Nombre
de una tabla de datos maestra. Esto har que, en tiempo de ejecucin, si el
usuario escribe una cadena en el control de edicin, transcurridos unos milisegundos 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.
Auto alta de maestro: solamente vlido para controles de edicin de un
campo Nombre de una tabla de datos maestra. Si se activa esta propiedad,
en tiempo de ejecucin si el usuario escribe una cadena en el control de
edicin y al perder el foco no se encuentra ningn registro en la tabla maestra con ese nombre, automticamente presentar el formulario de altas del
maestro con ese nombre. Para que esta opcin sea operativa es necesario
que el control de edicin del campo nombre del maestro tenga incrustado
un botn que dispare la funcin Alta de ficha de maestro de esa tabla de

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.

e Ejemplo: subindexacin especial


En un proyecto con la estructura de tablas PASES -> PROVINCIAS -> POBLACIONES (Maestro -> Submaestro -> Submaestro, respectivamente), se
desea que al dar de alta una poblacin, a la hora de buscar en la tabla de
PROVINCIAS pulsando los microescrollers del campo NOMBRE de la provincia, salgan slo aquellas pertenecientes al pas que se tenga editado. Para ello habr que hacer lo siguiente:

En la tabla de PROVINCIAS creamos un nuevo ndice compuesto por el


campo CODIGO de PASES y por el campo NOMBRE de PROVINCIAS (este ltimo podemos convertirlo a Alfa64 y reducir la longitud de la Parte a 12).
Identificamos a este nuevo ndice con el nombre, por ejemplo, de COMPUESTO.

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

En tiempo de ejecucin cuando demos de alta una nueva poblacin teniendo


un pas seleccionado, al pulsar los botones arriba y abajo del campo NOMBRE de la provincia, recorreremos la tabla de provincias, pero indexada por el
pas que se ha editado; es decir, slo aparecern las provincias de ese pas.

Brocha

Brocha de propiedades

Esta opcin permite establecer una serie de propiedades para asignrselas


posteriormente a todos los controles que deseemos. Para activar la brocha
pulsamos el botn brocha de propiedades
y en la pantalla aparecer su
barra de herramientas.

En la barra podremos establecer las siguientes propiedades:


Fuentes: podremos seleccionar una de las fuentes incluidas en el formulario. Si no queremos modificar las fuentes de los controles por los que vaya
a pasar la brocha, hemos de seleccionar No cambiar fuentes.
Color: especificamos aqu el color del texto, del fondo y del fondo con foco. Si no queremos modificar los colores de los controles por los que vaya
a pasar la brocha hemos de desactivar la casilla de verificacin que se encuentra junto a los controles de seleccin de controles de la paleta.
Seleccionable con tabulador: activada esta casilla de verificacin, a todos
los controles sobre los que pase la brocha se les asignar esta propiedad.
Slo lectura: si activamos esta casilla de verificacin, a todos los controles
sobre los que pase la brocha se les asignar esta propiedad.
Borde: activada esta casilla de verificacin, asignar esta propiedad a todos los controles sobre los que pase la brocha.
Condicin activo: si activamos esta casilla de verificacin, a todos los controles sobre los que pase la brocha se les asignar esta propiedad.

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.

Agregar y eliminar controles


Para agregar un control en un formulario seleccionamos en la barra de controles el botn correspondiente al control que deseamos aadir y posteriormente hacemos clic en la posicin donde deseamos situarlo.
Dentro del men Controles se encuentra la opcin Campos automticos.
Esta opcin permite hacer una seleccin de campos de la tabla para crear
en el formulario y de forma automtica los controles para editarlos, con excepcin de los campos de tipo Objeto. Adems, ajusta cada tipo de control
a cada tipo de campo de la tabla.
Para eliminar un control de un formulario basta con seleccionarlo y pulsar la
tecla Supr.

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.

Mover controles y cambiar su tamao


Para mover un control posicionamos el puntero del ratn sobre ste, pulsamos el botn izquierdo del ratn y, sin soltarlo, lo arrastramos hasta su posicin final. Tambin podremos moverlo, una vez seleccionado, utilizando las
teclas de movimiento del cursor. Si mientras se pulsan las teclas de movimiento del cursor se pulsa la tecla Ctrl, el desplazamiento ser ms rpido.
Podremos mover varios controles al mismo tiempo, para ello, con la tecla
shift pulsada iremos seleccionando cada control que deseemos desplazar.
Una vez seleccionados pulsaremos las teclas de movimiento del cursor para desplazarlos.
Para cambiar el tamao de un control posicionamos el puntero del ratn sobre ste y hacemos un simple clic (tambin podemos hacerlo pulsando Shift
+ teclas del cursor). Aparecer un manejador con el que redimensionar su tamao. Colocamos el puntero del ratn sobre uno de los ocho puntos de traccin, hacemos clic con el botn izquierdo, arrastramos y soltamos el botn.

Deshacer / Rehacer
Alinea izquierda
/ derecha / superior / inferior
Centrado vertical / horizontal
Reparto horizontal /
vertical
Adjuntar horizontal /
vertical
Misma anchura
/ altura / tamao
Botones a la derecha

Las opciones Deshacer y Rehacer estn activadas en la pantalla de edicin


de formularios, a travs de los botones
de la barra de herramientas.

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

Adems de estas formas de maquetacin, existen dos opciones en men


Maquetar/Alinear, que son:
Centrado Horizontal: centra horizontalmente todos los controles seleccionados con respecto a la posicin del ltimo (Shift + F9).
Centrado Vertical: centra verticalmente todos los controles seleccionados
con respecto a la posicin del ltimo (F9).
Por ltimo, Tamao del contenido (F7) nos redimensionar el control al tamao de lo que contiene.
La posicin y las dimensiones de un control o del formulario se mostrarn
en la barra de estado.
Para que resulte ms fcil la maquetacin de controles disponemos de una
rejilla de puntos. Para que aparezca ejecutamos la opcin de men Ver/Rejilla de fondo. Los puntos que componen la rejilla se podrn tomar como referencia para la maquetacin de los controles.

El orden de los controles


Velzquez Visual asigna un nmero de orden a cada uno de los controles
que aparecen en un formulario. Este nmero determina el orden en que los
controles reciben el foco o el cursor en tiempo de ejecucin.
Dentro del men Controles se encuentra la opcin Cambiar orden Tab (eje
Z), cuya funcin es que el diseador establezca el orden que mejor responda a sus intereses.
Al elegir esta opcin el puntero se convierte en una mano. Para establecer
el orden basta con ir haciendo clic sobre cada uno de los controles en el
mismo orden en que deseemos que Velzquez Visual los ordene. Para terminar, podemos hacer clic sobre cualquier objeto que no sea un control.
Si por ejemplo insertamos en un formulario un control texto esttico sin texto
contenido, con borde y le ponemos el color negro para el fondo, de modo que
ste haga las veces de fondo para otro control texto esttico con color blanco para el texto, en el orden de tabulacin hemos de marcar primero el control que hace las veces de fondo y despus el otro, ya que de lo contrario el
fondo estara por encima y ocultara al texto (de ah decir eje Z o vertical).
Tambin es posible cambiar el orden de tabulacin de uno o varios controles a travs del panel de controles del editor de formularios. Para ello, en el
panel de controles, seleccionamos uno o varios controles (si se trata de varios controles han de estar seguidos en dicho panel). Para desplazarlos en
el orden de tabulacin hacia adelante o hacia atrs utilizamos los botones
y
de la barra de maquetacin o con la combinacin de teclas Alt +
Cursor arriba / abajo.

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.

Control de edicin con men desplegable


Es posible agrupar varios botones con un control de edicin. En tiempo de
ejecucin, se presentar incrustado en el control de edicin un nico botn,
que se disparar pulsando la tecla F4 con el foco en el control de edicin,
o haciendo clic con el ratn sobre el botn. Una vez pulsado se presentar
un men de contexto con una serie de opciones que dispararn las funciones asignadas a cada botn agrupado con el control de edicin.
El ttulo de cada opcin del men de contexto estar compuesto por el
Tooltip asignado en las propiedades de cada botn que se haya agrupado
y por su tecla aceleradora, si la tuviese.
En el editor de formularios, para que el agrupamiento sea posible, tanto el
control de edicin como los botones a agrupar han de estar seguidos en el
orden de tabulacin. Una vez hecho esto, hay que proceder de la siguiente
forma:
En la pestaa Estilos activamos la propiedad Men desplegable en las propiedades tanto del control de edicin como de los botones que se desean
agrupar en l.
Por defecto, el botn nico aparecer incrustado en la parte izquierda del
control de edicin, si activamos la propiedad Alinear botn derecha aparecer incrustado a la derecha del mismo.

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

campo y edicin). Queremos que, al pasar el puntero del ratn por


encima de cada cuadro de edicin, se visualice un texto con el nombre del campo correspondiente. Adems el formulario debe aparecer
en modo cuadro de dilogo.
3. Aadir al formulario los botones Aceptar, Cancelar, de modo que cada uno de ellos dispare la funcin correspondiente. Dotar a cada botn de un acelerador.
4. En el proyecto tenemos otras tablas, entre las que se encuentra la tabla CIUDADES (submaestra de REGIONES). Aadir un botn en el
formulario que nos permita ver en una rejilla todas las ciudades de la
regin que estemos editando.
5. Crear dos formularios asociados a la tabla REGIONES: uno que incluya los campos Nombre, Pas y Descripcin, y otro que contenga Extensin, Nmero de habitantes y Principal actividad econmica. Incluir
el segundo formulario dentro del separador del primer formulario.
6. Crear de nuevo el formulario de REGIONES con todos los campos de
la tabla, de modo que el orden de tabulacin de los campos sea:
Nombre, Extensin, Pas, Descripcin, Principal actividad econmica, Nmero de habitantes.

e Ejemplo: Creacin de un formulario


Estamos diseando un programa en el que podamos almacenar los equipos
de ftbol de la Liga espaola. Dentro de dicho programa vamos a crear, adems de la tabla, un formulario que mostrar el nombre del equipo, su ao de
fundacin, el nombre del estadio y la foto de su escudo.
Inicialmente creamos la tabla EQUIPOS que contiene los siguientes campos:

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

A continuacin vamos a crear un objeto formulario. Para crear dicho objeto


seguimos los siguientes pasos:
En el rea Objetos, situada en la parte derecha del Editor de Proyectos,
pulsamos el botn Nueva carpeta
situado en la barra de herramientas (o bien seleccionamos desde la barra de mens la opcin Objetos/Nuevo/Carpeta /Hermana de la actual).
Aparece la ventana Carpeta de objetos. En ella seleccionamos la carpeta Formularios y como ttulo ponemos Equipos. Pulsamos el botn
Aceptar.
Velzquez Visual crea en el rea Objetos la carpeta Equipos. Dentro de
ella incluimos los formularios que vayamos creando.
Con la carpeta Equipos seleccionada, pulsamos el botn
Nuevo objeto de la barra de herramientas, o bien a travs de la barra de mens,
seleccionando la opcin Objetos/ Nuevo /Objeto).
Dentro de la ventana Galera de objetos, seleccionamos el objeto Formulario de edicin de fichas.
Al seleccionar el objeto y pulsar el botn
Nuevo objeto del tipo seleccionado, Velzquez Visual muestra la ventana Propiedades formulario: Equipos.

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

Pulsando el botn Todos, Velzquez Visual marcar las casillas de todos


los campos de la tabla. Al pulsar el botn Aceptar, en el formulario aparecern todos los campos seleccionados anteriormente (a excepcin del
campo Escudo, que es de tipo Objeto Dibujo).

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

A continuacin seleccionamos el botn


Objeto dibujo que se encuentra en la barra de herramientas de edicin para incluir el campo Escudo. Al hacer clic sobre el formulario una vez pulsado el botn mencionado se dibujar el correspondiente control (que estar seleccionado
y mostrar una serie de pequeos cuadrados de color negro). Al seleccionar el cuadrado de la esquina inferior derecha se puede aumentar el
tamao del mismo.

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

Pulsando el botn Cambiar se muestra la ventana Seleccione campo:


Objeto dibujo en la cual aparece ya seleccionado el campo Escudo.

Pulsando el botn Aceptar el formulario estara inicialmente creado.

Ejemplo: creacin de un formulario de bsqueda


Continuando con el ejemplo anterior de los equipos de la Liga espaola, vamos a crear a continuacin la tabla JUGADORES, que incluir los jugadores de cada uno de los equipos.
Los datos de la mencionada tabla, que se elige de tipo Histrico, son los
siguientes.

180 181

VELAZQUEZ VISUAL

Una vez creada la tabla histrica aparecer en el Esquema de tablas la


representacin de las dos tablas ya enlazadas.

Haciendo doble clic sobre la tabla JUGADORES vamos creando en la


ventana Tabla: Jugadores los siguientes campos:

IDENTIFICADOR

DESCRIPCIN

TIPO

BYTES

Nombre

Nombre

Alfa128

35

Lugar

Lugar nacimiento

Alfa64

30

Fecha

Fecha

Fecha

Puesto

Puesto

Alfa64

Foto

Foto

Objeto Dibujo

La ventana Tabla: Jugadores tiene el siguiente aspecto:

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

La rejilla incluir los campos Nombre, Lugar de nacimiento y Puesto.


Tendr como identificador JUGADORES. El aspecto que tendr el rea
de Objetos ser el siguiente:

Seguidamente vamos a crear el formulario de bsqueda. Dicho formulario


va a utilizarse en una bsqueda de jugadores por equipo. Es decir, el formulario de bsqueda permitir al usuario de la aplicacin que introduzca
un equipo para que la bsqueda le devuelva los jugadores de ese equipo.
Nueva subcarpeta

Con la carpeta azul Jugadores seleccionada, pulsamos el botn


Nueva subcarpeta y creamos la carpeta Formularios llamada Jugadores.

Nuevo objeto
Nuevo objeto del tipo seleccionado

Dentro de esa carpeta crearemos el formulario de bsqueda. Para ello


pulsamos el botn
Nuevo objeto de la barra de herramientas (o bien
a travs de la barra de mens, seleccionamos la opcin Objetos/Nuevo/Objeto) para seleccionar el objeto Formulario para bsquedas.
Al seleccionar el objeto y pulsar el botn
Nuevo objeto del tipo seleccionado Velzquez Visual muestra la ventana Propiedades formulario: Jugadores.

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:

Al hacer doble clic sobre el objeto formulario JUGADORES-EQUIPO


aparece automticamente la ventana de edicin del formulario. En l incluimos la etiqueta Equipos, para lo cual pulsamos el botn
Nombre
campo y seleccionamos en la pestaa General de la ventana Propiedades de: Texto esttico de nombre de campo el campo Equipo. Incluimos
tambin el control de edicin Equipos.Nombre, para ello pulsamos el botn
Edicin y seleccionamos en la pestaa General de la ventana
Propiedades de: Edicin el campo Equipo del enlace Equipo).

Nombre campo
Edicin

184 185

VELAZQUEZ VISUAL

Activamos el check Botones arriba/abajo de la pestaa Ms estilos para


que el usuario pueda seleccionar el equipo.

Reducimos el tamao del formulario y su aspecto ser:

04

Desarrollo bsico
de una aplicacin
e

Ejemplo: Creacin de un formulario


Vamos a crear un Formulario de Edicin de fichas para la tabla VIDEOS. Lo
llamaremos ALTA/MOD-VIDEOS (alta / modificacin). Para ello pulsamos el
botn Nuevo Objeto, apareciendo la Galera de objetos, en la que seleccionamos Formulario de edicin de fichas. Aparecer la ventana propiedades
del formulario, en la que indicamos la tabla de datos asociada, as como el
identificador del formulario.

Aceptamos, y nos aparecer el formulario en el rea de objetos del editor.


Lo seleccionamos, pulsamos la tecla F2 y le cambiamos el nombre por ALTA/MOD-VIDEOS.

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.

En este punto hemos de incluir en el formulario los controles necesarios


para poder editar las fichas. Dichos controles tienen que estar asociados
a los campos de los que estn compuestos los registros. La opcin de
men Controles/Campos automticos de Velzquez Visual nos permite
elegir los campos que vamos a incluir en el formulario, de modo que el
programa crea automticamente los controles de texto y los controles de
edicin necesarios. Seleccionaremos todos los campos exceptuando el
cdigo.
El siguiente paso es fijar el orden de tabulacin, para lo cual seleccionamos
la opcin de men Controles/Cambiar orden tab (eje z). El puntero del ratn
tomar la forma de una mano, e iremos haciendo clic en cada uno de los
controles segn el orden de tabulacin deseado. Haciendo clic con el botn derecho del ratn sobre cada control, aparecer la ventana de propiedades del control, en la que podemos cambiar sus propiedades.

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.

El formulario podra tener un aspecto final parecido al que se presenta en la


siguiente figura:

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

Para la creacin de una bsqueda pulsamos el botn


Nuevo objeto. De
la Galera de Objetos elegimos Bsqueda en la base de datos. Si hemos seleccionado una tabla antes de pulsar el botn, la bsqueda se asociar automticamente a esta tabla.

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:

VENTANA DE PROPIEDADES DE LA BSQUEDA

Tabla de datos: tabla sobre la que se va a realizar la bsqueda.


Nombre: nombre que le damos a la bsqueda.

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

VENTANA DE POSICIN INICIAL

Las propiedades de la caja barra de herramientas son:


Ninguna: no presentar ninguna barra de herramientas al presentar la rejilla
con los registros encontrados.
Estndar: presentar la barra de herramientas de listas estndar de Velzquez, que incluye botones para dar alta, editar o borrar registros, presentar
los maestros de los registros de la rejilla, presentar los histricos de una ficha de la rejilla, presentar histricos de todas las fichas de la rejilla, lanzar
un tubo de ficha, ejecutar procesos, cambiar la rejilla, recalcular totales y el
contador del total de fichas de la rejilla.
Personal: permite presentar una barra de herramientas que hayamos creado en el proyecto.

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

VENTANA DE PROPIEDADES DEL COMPONENTE DE BSQUEDA

Las propiedades de la ventana Componente de bsqueda son las siguientes:


ndice: seleccionamos aqu el ndice por el cual queremos realizar la bsqueda. La lista desplegable muestra todos los ndices declarados en la
tabla.
Condicin activa: casilla de verificacin que permite establecer una condicin, con lo cual el componente de bsqueda no se ejecutar si dicha condicin no se cumple. Si activamos esta opcin se abrir el asistente para la
edicin de frmulas, para que pueda especificar la frmula condicional.
Modo de bsqueda: en esta lista desplegable podemos seleccionar la forma de realizar la bsqueda. Existen tres formas:
Todo el fichero: el resultado de la bsqueda sern todos los registros de la
tabla indexados por ese ndice (exceptuando los excluidos debido al Filtro
secuencial, si est definido). En este caso, como es lgico, no es necesario
especificar un formulario para pedir datos ni declarar los datos iniciales de
bsqueda.
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 (no es necesario usar un formulario para definir los parmetros, stos pueden ser variables a las que se asignen valores mediante procesos, etc.). Se pueden especificar tantos campos (partes) de la clave como sean necesarios. Cada una de las partes se presenta de arriba
abajo en la lista del componente de bsqueda. Hemos de ir resolviendo cada una de las partes por orden, hasta aquella que no queramos definir el valor. Por ejemplo, si tenemos un libro con una clave que llamamos NOMBRE
y que tiene como partes TTULO e ISBN, podemos buscar por parte izquierda de la clave, resolviendo nicamente el ttulo, o adems el I.S.B.N.
Cuantas ms partes resolvamos, ms especfica ser la bsqueda.

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.

Ejemplo: Creacin de bsquedas


Tenemos una tabla llamada ESTUDIANTES con una serie de campos y una
serie de ndices (dichos ndices son creados automticamente por Velzquez Visual). Tambin tenemos una rejilla, Estudiantes, asociada a la tabla.

VENTANA DE ESTRUCTURAS DE DATOS DEL EDITOR DE PROYECTOS

Queremos incorporar en el programa una serie de bsquedas con las que


podamos ver un listado de todos los estudiantes ordenados por cdigo,
otro listado en el que aparezcan ordenados alfabticamente, otro listado
que muestre los registros que incluyan en su nombre la palabra o palabras
que el usuario escriba y, por ltimo, otro listado en el que el usuario pueda
buscar registros por trozos de palabras del nombre.
Como mencionbamos anteriormente, Velzquez Visual crea automticamente cuatro ndices. Vemoslos con detalle:
El ndice CODIGO utiliza el Tipo de ndice Clave nica e indexa por el
campo CODIGO de la tabla. Este ndice se utilizar para realizar la bsqueda de estudiantes por cdigo.
El ndice NOMBRE utiliza el Tipo de ndice Acepta repetidas e indexa por
el campo NOMBRE de la tabla. Nos permitir realizar la bsqueda de estudiantes por orden alfabtico.

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

En el rea Objetos, situada en la parte derecha del Editor de Proyectos,


pulsamos el botn Nueva carpeta
, situado en la barra de herramientas (o bien seleccionando desde la barra de mens la opcin Objetos /
Nuevo /Carpeta /Hermana de la actual).
Aparece la ventana Carpeta de objetos. En ella seleccionamos la carpeta Bsquedas y como ttulo ponemos Estudiantes. Pulsamos el botn
Aceptar.
Velzquez Visual crea en el rea Objetos la carpeta Estudiantes. Dentro
de ella incluiremos las distintas bsquedas que vayamos creando.
Con la carpeta Bsquedas seleccionada, pulsamos el botn
Nuevo
objeto de la barra de herramientas (o bien a travs de la barra de mens,
seleccionando la opcin Objetos / Nuevo / Objeto, o con la tecla Insert).
Dentro de la ventana Galera de objetos, seleccionamos el objeto Bsqueda en la base de datos.
En la ventana propiedades de la bsqueda, rellenamos los siguientes
datos:

04

Desarrollo bsico
de una aplicacin
e

Para seleccionar el ndice que va a utilizar la bsqueda, pulsamos el botn Aadir


que est dentro de la ventana de propiedades de la bsqueda. Al pulsar, Velzquez Visual muestra la ventana Componente de
bsqueda, en la cual seleccionamos el ndice CODIGO.

Al pulsar el botn Aceptar, y luego pulsar el botn Aceptar de nuevo, se


visualizar en el rea Objetos del Editor de Proyectos la bsqueda creada. Sustituimos el identificador creado por defecto por el identificador
ESTUDIANTES-COD:

Aadir

198 199

VELAZQUEZ VISUAL

Para el resto de bsquedas se realizan los mismos pasos que para la


creacin de la bsqueda ESTUDIANTES-COD. Las propiedades de cada una de ellas se presenta a continuacin:

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

Centrmonos cuanto antes en lo que nos ocupa: la bsqueda compleja.


Nos ser de ayuda tener a la vista un formulario de bsqueda como el que
nos hace falta.

FORMULARIO DE PETICIN DE DATOS QUE UTILIZAR EL USUARIO FINAL

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:

Tabla de datos: LIBROS. Es la tabla a la que vamos a asociar el formulario


de bsqueda.
Nombre: libro ttulo, autor y editor. Es el nombre del formulario de bsqueda.
Una vez hecho esto, pasaremos a incluir los controles que formarn parte
de nuestro formulario de bsqueda y que sern los siguientes:
Control Nombre campo: ttulo.
Control Edicin: aqu asociamos el campo ttulo al control de edicin.

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.

: Alimentado por la variable PALABRAS-EXAC-

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.

Botn de radio Palabras

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.

Control Nombre campo: Editor.


Control Edicin: lo asociamos al campo Editor (con las opciones botones
arriba y abajo y men desplegable activadas).
Botn dibujo: funcin a disparar: localizador de editores (con la opcin men desplegable activada).
Para incrustar el botn que dispara el localizador de autores en el control
de edicin del campo nombre del autor lo que hemos hecho ha sido situar
ambos controles seguidos en el orden de tabulacin (primero el control de
edicin y luego el botn), y hemos activado en ambos controles la propiedad Men desplegable (dentro de la pestaa Aspecto). Hemos procedido
de la misma forma con el control de edicin del nombre del editor y el botn que dispara el localizador correspondiente.
Veamos ahora cmo hemos construido la bsqueda y sus propiedades.
Seleccionamos el objeto Bsqueda en la base de datos de la Galera de objetos y le damos las siguientes propiedades:
Tabla de datos: LIBROS. Es la tabla a la que est asociada la bsqueda.
Rejilla: LIBROS. Rejilla en la que vamos a presentar los libros que resulten
de la bsqueda.
Formulario inicial: LIBROS-TITULO-AUTOR-EDITOR (formulario que se presentar en pantalla al elegir esta bsqueda, y en el que se introducirn los
parmetros de la misma [es el que hemos explicado en el punto anterior]).

04

Desarrollo bsico
de una aplicacin
e

Pulsamos el botn Aadir


del apartado Componentes de bsqueda en
ndices, y especificamos los siguientes parmetros para realizar una bsqueda Por Palabras del ttulo, y con el modo Todas las palabras:

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

En los componentes de bsqueda se define el ndice por el que buscar, el


modo de bsqueda y el formulario para pedir datos al usuario, cuando sea
necesario.
En una misma bsqueda es posible definir varios Componentes de Bsqueda, que podemos combinar de tres formas distintas: Cruzar, Aadir y
Quitar, dependiendo del resultado que queramos obtener.

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.

Propiedades de un men arbolado


Al crear un men arbolado, se presenta un cuadro de dilogo donde es posible definir las propiedades del mismo, empezando por el nombre.
El resto de sus propiedades son las siguientes:

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

En el apartado Carpetas subgrupos se definen las carpetas que formarn


parte del men. Para aadir nuevas carpetas pulsamos el botn Nueva
.
Para cambiar el orden de una carpeta, la seleccionamos en la lista y pulsamos los botones de desplazar subir o bajar
.
En la casilla Icono seleccionamos de entre los dibujos del multi-icono que
hemos escogido, aquel que preferimos para la opcin que estamos creando. ste lo hemos declarado en el men en rbol: Iconos, y se presentar
junto al ttulo.

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.

Propiedades de una opcin de men


Una opcin de men est compuesta por las propiedades siguientes:

04

Ttulo opcional: permite establecer un ttulo diferente al que Velzquez


Visual propone por defecto.
Pistola: til que permite disparar uno o varios objetos.
Bala: objeto a disparar por la pistola.
Segunda bala: segundo objeto a disparar por la pistola. Con esta opcin,
dos balas son visualizadas simultneamente dividiendo la pantalla en
dos, mediante una barra vertical u horizontal. La barra puede moverse
en tiempo de ejecucin para alterar el tamao de las partes. El tamao
inicial y la orientacin se definen en el apartado Doble ventana. Pulsando el botn Cambiar 2 bala se define el objeto que ser disparado. Este objeto depender de la seleccin de los Botones de Radio. Slo algunas pistolas permiten disparar dos balas. En el caso de la opcin Ejecutar proceso tras bsqueda, la segunda bala es un proceso y lo que
presenta finalmente es lo que devuelva el proceso.
Estilos:
Autodisparable: si est seleccionado, la bala se dispara automticamente por el sistema al crearse el men.
Ajusta ventana: si est seleccionado, establece el tamao de la ventana como el declarado en los apartados Posicin y Dimensiones. Si
en tiempo de ejecucin la ventana est maximizada, esta opcin ser ignorada.
Pasarle usuario: es especfico para la pistola Abrir otra aplicacin de
Velzquez Visual.
Cerrar este men: esta opcin nicamente aparece cuando en la pistola tenemos opciones relacionadas con los mens.

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

VENTANA DE PROPIEDADES DE UNA OPCIN DE MEN

Bsqueda: dispara el objeto Bsqueda seleccionado en la bala. Si no se


encuentra ningn registro, el programa presentar un mensaje avisando
que no se han encontrado registros y volver al men desde la que se
dispar.
Bsqueda (permite vaco): dispara el objeto Bsqueda seleccionado en
la bala. Si no se encuentra ningn registro, se presentar igualmente la
rejilla asociada a la bsqueda, con 0 registros.
Men: en mens arbolados dispara el objeto Men seleccionado en la
bala. En mens de tipo formulario permite disparar dos mens, uno como primera bala y otro como segunda bala.
Formulario (Alta): dispara el objeto Formulario seleccionado en la bala,
para permitir un alta en una tabla de dato.

04

Desarrollo bsico
de una aplicacin

Rejilla tabla datos completa: dispara el objeto Rejilla seleccionado en la


bala, mostrando el contenido de la tabla tal y como se encuentra fsicamente en el disco, incluidos los huecos dejados por registros eliminados.
Desde una rejilla de tabla de datos completa disponemos, en tiempo de
ejecucin, de las utilidades siguientes cuando no usamos cliente-servidor
(puesto que estas opciones las tenemos en el servidor, excepto la ltima
que la tenemos en el men Lista cuando estamos viendo una rejilla):
Informacin sobre la tabla de datos: obtendremos informacin sobre el
nombre e identificador de la tabla, el nmero total de fichas que contiene, cuntas de ellas estn ocupadas y cuntos huecos libres tiene.
Regenerar ndices: si los ficheros de ndices estn corruptos o han sido eliminados, podemos regenerarlos a travs de esta opcin.
Regenerar rea de datos: permite regenerar el rea de datos de la tabla, es decir, su cabecera, que contiene informacin tal como el nmero total de registros de la tabla y otra informacin adicional sobre
la misma.
Exportar Ascii: permite realizar un volcado de la tabla a un fichero Ascii.
Bsqueda Formulario: dispara el objeto Bsqueda seleccionado en la
bala. Si slo encuentra un registro, Velzquez Visual lo presenta con el
formulario. En caso contrario, muestra la rejilla de la bsqueda con todos los registros encontrados.
Incluir Men: incluye, en el momento de la ejecucin, el objeto Men con
su ttulo y su contenido completo. En mens de tipo formulario provoca
que el nuevo men se ejecute en la misma ventana que el men llamador.
Incluir Carpetas Men: en mens arbolados incluye, en tiempo de ejecucin, el contenido del objeto Men. Excluye el ttulo del mismo. En mens de tipo formulario, si desde un men utilizamos la pistola Men, podremos disparar dos mens al mismo tiempo, uno como primera bala y
otro como segunda bala. En el men disparado como primera bala podr crear opciones que disparen diferentes mens, que se visualizarn
en la parte derecha de la pantalla, mediante la pistola Incluir Carpetas de
men. As, podremos tener en la parte derecha de la pantalla un men
con opciones generales (Artculos, Clientes, Proveedores, etc.), y al ejecutar una de ellas, por ejemplo Artculos, como segunda bala en la parte derecha de la pantalla un men con sus opciones correspondientes
(bsquedas, localizador, formulario de altas, etc. de artculos). El tamao de los paneles donde se visualizarn los mens se determinar en
funcin del ancho que ocupe el men disparado como primera bala.
Localizador: muestra el Localizador seleccionado en la bala. El localizador muestra los ndices en una Lista desplegable para que el usuario elija el ms adecuado para realizar la bsqueda. El resultado de la bsqueda es visualizado en la rejilla.

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

rbol de tabla de datos: dispara el objeto rbol seleccionado en la bala.


Ejecutar proceso tras bsqueda: ejecuta el proceso declarado en sus parmetros con la lista obtenida en la bsqueda declarada en la bala.
Ejecutar proceso sin origen: ejecuta el proceso declarado como bala de
esta opcin. Debe ser un proceso sin origen.
Tubo de importacin: ejecuta el Tubo de importacin declarado en la bala.
Cerrar la aplicacin: cierra la aplicacin que est abierta.
Cerrar ventana de men: cierra la ventana del men actual.
Abrir otra aplicacin Velzquez: permite lanzar otro proyecto de Velzquez.
Como primera bala necesitamos una variable global, que debe ser de formato alfabtico. Su contenido variar segn se ejecute la aplicacin en el
Servidor de Aplicaciones o a travs del VRunner.
Sintaxis del contenido de la variable para ejecutar el proyecto con el VRunner: ser la senda de la aplicacin a abrir. Es muy til para la gestin multiempresa. Por ejemplo, podemos tener en un directorio el proyecto principal (que ser un simple proyecto de empresas) y en directorios dependientes del mismo los proyectos correspondientes a la contabilidad de cada empresa. Con esta pistola podremos abrir cualquiera de los otros proyectos,
dependiendo del valor de la variable global utilizada como bala. El estilo Pasarle usuario es especfico para esta opcin. Si se activa, al arrancar el otro
proyecto se toma el usuario/password de la aplicacin en curso y se pasan
a la nueva. Si existe ese usuario/password en la otra, entra directamente y si
no, presentar el cuadro de dilogo de peticin de usuario y contrasea.
Para la versin cliente servidor la sintaxis ser: etiqueta_aplicacion/usuario/password@SERVIDOR.
Etiqueta_aplicacin: se trata del nombre interno del proyecto o del alias dado en el Servidor. Si ste contiene espacios en blanco, stos sern sustituidos por un guin (-).
/usario/password: son parmetros opcionales; por defecto, si la opcin de
men tiene activado el flag Pasar usuario tomar por defecto el usuario/password del que est ejecutando la aplicacin.
Si tras la etiqueta de la aplicacin se escribe /?, se obligar a la peticin de
usuario password.
@SERVIDOR: parmetro opcional. Si no se especifica servidor, se tomar el
Servidor donde se est ejecutando la aplicacin actual.
Cesta de la compra: esta pistola requiere una cesta de la compra definida en el proyecto. Como parmetro opcional (Segunda bala) podemos
especificar una rejilla del histrico, un formulario o un grfico. En ejecu-

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

parar en la primera bala debe existir un campo en el que almacenar una


URL. Seleccionaremos dicho campo en las propiedades de esta segunda bala.
Proceso: Para la pistola Ejecutar proceso tras bsqueda hemos de elegir uno que tenga origen Lista de la tabla asociada a la bsqueda de la
primera bala.

e Ejemplo: Creacin de un men arbolado


Supongamos una aplicacin para un videoclub en la que se incluye la tabla
VIDEOS (contiene informacin acerca de los vdeos del negocio) y en la que
ya hemos creado las bsquedas por palabras y trozos de palabras del nombre, por duracin y por idioma. Vamos a crear un men arbolado en el que
se incluyan esas bsquedas.

Men arbolado
Aadir

Comenzamos y pulsamos el botn Nuevo Objeto y en la Galera de Objetos


elegimos Men arbolado
. Aparecer la ventana de propiedades del men arbolado, en la que hemos de escribir el nombre que queremos darle a
la bsqueda. Escribimos Men de bsquedas.
A continuacin pulsamos el botn Aadir
para crear las carpetas que va
a contener el rbol y en las que se organizarn las bsquedas.
Aparecer la ventana Carpetas subgrupos de men, en la que teclearemos
el ttulo de la primera carpeta, que ser Bsqueda por palabras.

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.

Como pistola elegimos Bsqueda, y como bala: POR-PALABRAS.


Estos pasos hemos de repetirlos con las tres bsquedas restantes de la tabla VIDEOS. Una vez hecho esto hemos de integrar el men arbolado dentro de uno de los mens formulario que usamos para lanzar las distintas opciones de la aplicacin.

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.

Propiedades de un men tipo formulario


Permiten que el diseador utilice un formulario de pantalla completa para
colocar textos y grficos que disparen las distintas opciones del men.
Para crear un men tipo formulario, abrimos la Galera de Objetos y seleccionamos Men tipo formulario, con lo que Velzquez Visual presenta un
entorno de edicin a pantalla completa donde podremos editar el men.

04

Sealando la opcin del men principal Edicin / Propiedades o haciendo


doble clic sobre el fondo de la pantalla del men, aparece el cuadro de dilogo Propiedades del men.

Las propiedades del cuadro de dilogo son:

Desarrollo bsico
de una aplicacin

220 221

VELAZQUEZ VISUAL

Nombre: nombre que llevar el men.


Privado: si lo marcamos ste no ser incluido en la lista de mens que
puede escoger un usuario, sino que se ha de acceder a l por medio de
otro men.
Suprimir Mrgenes: sirve para suprimir los mrgenes que estn activos
por defecto en tiempo de ejecucin. Es muy til cuando se est trabajando con un control de tipo Bsqueda Rejilla o con un control de tipo
rbol, cuando estn definidos como alto variable o ancho variable.
Proceso oninit: permite asociar un proceso para que se ejecute al abrirse el men. El proceso debe tener un origen nulo, es decir, no puede tener su origen en ninguna tabla de datos. Este proceso podra usarse, por
ejemplo, para permitir o denegar el acceso de un usuario a ese men, o
lanzar algn proceso necesario para las opciones de ese men.
Barra de herramientas: si incluimos en el men un objeto de bsqueda
rejilla o de rbol y hemos creado un objeto visual de tipo Barra de Herramientas, especificaremos en esta opcin la barra de herramientas que
deseemos utilizar.
Aparcar barra: para situar la barra de herramientas en la parte superior,
inferior, izquierda o derecha del men.
Si queremos utilizar un dibujo de fondo para un men de tipo formulario,
podremos elegir entre los modos de pintado de dibujo siguientes:
Normal: el dibujo se situar en la parte superior izquierda del formulario.
Mosaico: el dibujo se repetir por todo el formulario a modo de mosaico, ocupando todo el rea del mismo. Si el dibujo ha sido definido
con fondo transparente, el mosaico tambin ser de fondo transparente.
Centrado: se centrar horizontal y verticalmente con respecto al formulario.
Estirado: el dibujo se adaptar para ocupar toda la extensin del formulario.
Color de fondo: aqu podemos escoger el color que tendr de fondo el
formulario.
Efecto Cristal: se refiere al color que deseamos que adopte el filtro o cristal que Velzquez Visual coloca delante de los dibujos o los textos estticos que componen el men cuando el cursor se posiciona sobre ellos.
Si no queremos utilizar el efecto cristal, bastar con desactivar la casilla
Cristal activo. El color negro es el que desactiva el cristal. Si deseamos
activar el cristal hemos cambiar dicho color por el que deseemos.

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

Puntero del ratn


Dibujo
Gif
Texto esttico
Edicin
Microescrollers
Calendario
Botn de radio
Check Box

Fuentes: fuentes de las que dispondremos en el formulario.


Bsqueda de Rejilla

Controles de un men tipo formulario y maquetacin


En la parte superior del rea del men tipo formulario encontramos una barra de herramientas con los diferentes controles de mens.

Bsqueda de rbol
rbol tabla completa

Puntero del ratn,


Dibujo,
Gif,
Texto esttico,
Edicin,
Microescrollers,
Calendario,
Botn de radio,
Check Box,
Bsqueda de Rejilla,
Bsqueda de rbol,
rbol tabla completa,
Casillero,
Pelcula,
Banda de mosaico,
Regin,
Men arbolado,
Html.
Crear polgono de la regin,
Aumentar Zoom,
Reducir
Zoom.

Casillero
Pelcula
Banda de mosaico
Regin

De entre estos controles, Dibujo, Texto esttico, Pelcula y Regin pueden


disparar opciones, abrindose la ventana propiedades de una opcin de
men:

Men arbolado
Html
Crear polgono de la regin
Aumentar Zoom
Reducir Zoom

222 223

VELAZQUEZ VISUAL

Podemos establecer una Condicin de visibilidad de controles. Si queremos


que, segn una condicin impuesta por nosotros, un control de men sea
o no visible, lo seleccionamos y ejecutamos la opcin del Men Controles /
Condicin visible. Se abrir el Asistente para la edicin de frmulas, en el
que especificaremos la frmula de la condicin.
Las Estilos de los controles son:

Borde: pone un borde al objeto.


Hundido: efecto de tres dimensiones en que el objeto parece hundido.
Sombreado: el objeto aparece con sombra del color elegido.
Fondo opaco: el objeto aparece con fondo del color elegido, anulando la
sombra.
Multilneas: en el caso de que el objeto tenga texto, permite que ste ocupe varias lneas.
Ocultar si no entra: si activamos esta propiedad a un control, en tiempo de
ejecucin, si ste no va a caber debido al tamao de la ventana, no se mostrar. Es muy til para controlar que el men va a verse completo, trabaje a
la resolucin sobre la que se trabaje. Obviamente, esta opcin slo se usar con controles que no disparen opciones (dibujos, bandas de mosaico,
etc.).
En la parte superior de la pantalla se encuentra la barra de maquetacin de
controles. sta funciona igual que con los formularios:

Alineaciones
Centrados
Repartos
Adjuntar

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 men.
Los dos siguientes
espacian tres o ms controles a la misma distancia horizontal y vertical entre ellos, respectivamente.
Estos dos
distribuyen los controles seleccionados horizontal o verticalmente con respecto al que haya sido seleccionado en ltimo lugar.

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.

Explicacin completa de los controles


Puntero del ratn: no tiene ms funcin que sealar o desactivar la seleccin de otro control.

EJEMPLO DE CONTROL DIBUJO

Dibujo: permite seleccionar uno de los dibujos incluidos en el proyecto


de Velzquez Visual para utilizarlo como un elemento del men.

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

Acelerador de teclado: permite asociar al objeto un acelerador de teclado.


Podremos escoger entre:
Todos los nmeros del 0 al 9.
Todas las letras de la A a la Z ( excluida).
Todas las teclas de funcin desde F1 a F12.
Adems, podremos hacer combinaciones con estas teclas ms las teclas
Shift y Ctrl.
Estos aceleradores tienen preferencia sobre los aceleradores del men e incluso sobre los aceleradores de Windows, as que si utilizamos la combinacin de
teclas Ctrl+F4 para disparar una opcin desde un objeto de este tipo, se disparar la opcin pero no podremos cerrar la ventana con dicha combinacin
de teclas (que es el comando de Windows que permite cerrar una ventana),
pues tiene preferencia la combinacin de teclas especificada para el objeto.

EJEMPLO DE CONTROL GIF

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.

VENTANA DE PROPIEDADES DEL CONTROL GIF

EJEMPLO DE TEXTO ESTTICO

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.

PROPIEDADES DEL CONTROL TEXTO ESTTICO

Edicin: permite editar en el men una variable global.

EJEMPLO DEL CONTROL EDICIN

Sus parmetros son:


Variable: identificador de la variable que se desea editar. Abriremos el combo box para seleccionarla.

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

Botones arriba/abajo: para variables de tipo Numrico o de tipo Fecha. Lo


activaremos si deseamos que dentro del control se incluyan microescrollers. stos permiten aumentar o disminuir de uno en uno el nmero o la fecha editada pulsndolos con el ratn o simplemente utilizando las teclas del
cursor arriba/abajo. Si el control est definido como multilneas, entonces el
usuario tendr que mantener pulsada la tecla Alt mientras pulsa las teclas
del cursor arriba/abajo.
Timer: si en las propiedades de un men tipo formulario hemos activado el timer, en esta opcin especificaremos cada cuntos timers se ha de ejecutar la
bala que dispara el texto. Para que se dispare sin que tenga que intervenir el
usuario, tendremos que activar en las propiedades de la opcin el estilo Autodisparable. Por ejemplo: en las propiedades de un men hemos activado un
Timer de 5.000 milisegundos (5 segundos). Hemos incluido en dicho men dos
textos estticos, autodisparables, que disparan sus pistolas correspondientes.
A uno le hemos especificado 2 timers y a otro 1. En tiempo de ejecucin el primero se ejecutar cada 10 segundos (2 timers) y el segundo cada 5 (1 timer).
Asimismo, podremos alinear el contenido del control a la izquierda, a la derecha o centrado.
Microescrollers
Microescrollers

Microescrollers: permite incluir en el men unos microescrollers


para poder aumentar o disminuir el contenido de una variable global de tipo
Numrico o de tipo Fecha.

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

EJEMPLO DEL CONTROL CALENDARIO

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

Variable: seleccionamos en esta opcin la variable global que deseamos


asignar al control.
Dato fijo: a cada botn de radio se asocia la misma variable global, la
cual ser modificada con el contenido que especifiquemos en este cuadro de edicin. Basta con que uno de ellos tenga seleccionada la propiedad.
Seleccin con Tab: para que el cursor se posicione sobre el seleccionado.
Una vez seleccionado, podemos usar las flechas de desplazamiento del
cursor para movernos entre los botones de radio y seleccionarlos. Se ha
de especificar una cadena de formato y podremos utilizar constantes o variables.
Texto: texto que se visualizar junto al control. Es una cadena de formato y
podemos usar tanto una constante como el contenido de una variable global. Podemos utilizar aceleradores de teclado, situando el smbolo & delante de la letra que desee emplear como acelerador. Los aceleradores son dinmicos, es decir, pueden utilizarse con variables globales, pudiendo aceptar expresiones tales como &$IVA1$.
Check Box

Check Box (Casilla de verificacin): mediante un control de este tipo podemos editar variables de tipo booleano en un men de tipo formulario.

EJEMPLO DEL CONTROL CHECK BOX O CASILLA DE VERIFICACIN

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

Bsqueda de Rejilla: permite incluir en el mismo men una rejilla con el


resultado de una bsqueda concreta. En tiempo de ejecucin aparecer en
el men una rejilla con todos los registros resultantes de la bsqueda realizada. Para ver sus posibilidades de uso remitimos al apartado dedicado a
la Sincronizacin de controles.

EJEMPLO DEL CONTROL BSQUEDA DE REJILLA

Se puede imprimir un informe asociado a la rejilla utilizada para la creacin


de este control. Si hay ms de un control de rejilla en la misma pantalla se
imprimir el informe de la que tenga el foco.

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

De igual modo que las rejillas de bsqueda, si se ha creado otro control en


el formulario 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 la rejilla). Para evitar esto procuremos situar el control de Bsqueda de rbol ms abajo que el resto de los controles.
Asimismo podemos especificar la fuente que utilizar el control.
rbol tabla completa

rbol tabla completa: permite incluir en el mismo men un rbol visor de


tablas arboladas que presentar todos los registros de la tabla. Sus posibilidades de uso se exponen en el apartado Sincronizacin de controles.
Veamos sus propiedades:

El parmetro Tamao tiene las siguientes opciones:


Fijo: en ejecucin, el rbol se visualizar con el tamao dado al control.
Ancho Variable: si activamos 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 truncada la rejilla y aparecern las barras de scroll.
Alto Variable: funciona igual que el anterior pero adaptando el alto.

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.

En las propiedades de un casillero debemos especificar qu proceso va a


alimentarlo y cul ser el casillero a presentar. El proceso ha de tener origen
nulo. El casillero, al igual que los rboles y las bsquedas rejilla, puede ser
objeto de sincronizacin.
Pelcula: permite seleccionar un fichero de vdeo, con formato AVI, para
incluirlo como un elemento del men.

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

Banda de mosaico: permite incluir en un men bandas horizontales o


verticales utilizando un dibujo que se repetir como un mosaico.

04

Veamos las propiedades del control:


La Orientacin puede ser:
Horizontal: el ancho de la banda ser todo el men y el alto ser la altura del
dibujo elegido como mosaico. Podemos variar la altura de la banda.
Vertical: el alto de la banda ser la altura del men y el ancho ser el del dibujo que se haya seleccionado como mosaico. Podemos cambiar la anchura de la banda.

En Posicin tenemos dos opciones:

Desarrollo bsico
de una aplicacin

238 239

VELAZQUEZ VISUAL

La del control: se mostrar en ejecucin dicha banda en la posicin en la


que se ha definido en el men.
Derecha/abajo: si la banda de mosaico se quiere visualizar en la parte derecha del men (si es vertical) o en la parte inferior del mismo (si es horizontal). Esto viene motivado por las distintas resoluciones de los monitores.
Activada esta opcin, sea cual sea la resolucin de un monitor, se asegurar que la banda salga en la posicin deseada (en la parte inferior o bien en
la derecha de la pantalla).
Si se utiliza un dibujo con color de fondo transparente, las bandas de mosaico tambin tendrn el color de fondo transparente.
Regin

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.

Las regiones pueden lanzar o no opciones, como cualquier otro control de


un men de tipo formulario.

La ventana de propiedades del control contiene los siguientes parmetros:

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

Crear polgono de la regin


Aumentar y reducir
zoom

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

Ninguno: en ejecucin, al pasar con el cursor sobre la regin, cambiar el


modo del cursor a modo de seleccin.
Invertir colores: en ejecucin, al pasar con el cursor sobre la regin, cambiar el modo del cursor a modo de seleccin y se invertir el color o los colores que estn dentro del rea de la misma.
Opaco: en ejecucin, al pasar con el cursor sobre la regin, cambiar el modo del cursor a modo de seleccin y se ver la regin con el color que se
haya elegido en el editor de proyectos.
Si hemos creado varias regiones en un mismo formulario y se superponen
unas a otras, la que prime ser la ltima en el orden de tabulacin.
Aceleradores de teclado: ver la explicacin sobre los aceleradores de teclado en los controles de tipo dibujo.
Men arbolado

Men arbolado: permite incrustar como control dentro de un men formulario un men arbolado existente en el proyecto.

Las propiedades del control son:


Men: identificador del men arbolado que se desea incrustar.
Fuente: la que vamos a utilizar de entre las especificadas en las propiedades del men tipo formulario.

04

Desarrollo bsico
de una aplicacin

Html: permite incrustar como control dentro de un men formulario una


URL.

Html

La Frmula URL es una expresin frmula de la URL a presentar. Puede ser


una constante, una variable global, etc. Por ejemplo: http://velazquezvisual.com.
En el Navegador de Velzquez Visual la barra de navegacin web acta sobre el control cuando ste tiene el foco (atrs, adelante, actualizar...), pero
no la barra de direcciones URL (sta sigue actuando como siempre, al escribir una URL presenta el resultado en una nueva ventana).

Ejemplo: creacin de un men tipo formulario


Supongamos una aplicacin para una librera en la que incluimos la tabla
LIBROS. Vamos a realizar el men correspondiente a dicha tabla. Para
ello pulsamos el botn Nuevo Objeto, y de la Galera de Objetos elegimos
men tipo formulario. Entraremos directamente en la pantalla de edicin
de mens. Pulsando el botn derecho del ratn aparecer la ventana
Propiedades del men en la que escribimos el nombre del formulario, definimos las fuentes que vamos a usar en l y establecemos el resto de
propiedades.

242 243

VELAZQUEZ VISUAL

Salimos de la ventana aceptando, y podemos salir de la pantalla de edicin


de mens para cambiar el identificador del men por libros (pulsando la tecla F2).

Texto esttico

Pinchamos sobre el objeto men tipo formulario que acabamos de crear y


volvemos a entrar en la pantalla de edicin de men. Pinchamos sobre el
control texto esttico
, arrastrndolo hacia la zona del men donde queremos que se encuentre. Con el botn derecho sobre el control obtenemos
la ventana de propiedades del control.

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

e Al aceptar aparecer en la pantalla del editor de mens el siguiente texto.

Ahora vamos a ir metiendo en el men los controles que dispararn cada


uno de los objetos que construimos en la tabla libros. Por ejemplo, la bsqueda de libros por palabras del nombre. Para ello, en el men volvemos a
seleccionar el control texto esttico, arrastrndolo con el ratn a la zona del
men en la que queremos situarlo. Hacemos clic sobre l con el botn derecho del ratn, de modo que en la ventana de propiedades del control que
aparece fijamos sus propiedades.

Pulsamos a continuacin el botn Editar Opcin, apareciendo la ventana


Propiedades de una opcin de men. Como ttulo opcional escribimos Buscar por Palabras. De entre las pistolas (es decir, funciones a disparar) elegimos Bsqueda, y como bala elegimos la bsqueda LIBROS-PAL.

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

Mens Autoexec y Onclose


Cuando a uno de los objetos men de un proyecto de Velzquez Visual se
le asigna el identificador AUTOEXEC, dicho men pasa a ser el men de
arranque del proyecto, convirtindose en la primera pantalla que ver aparecer el usuario de la aplicacin. Por otro lado, si asignamos el identificador
ONCLOSE a un men, ste se convierte en el men de cierre del proyecto,
con lo que ser la ltima pantalla que ver aparecer el usuario al cierre de
la aplicacin. El men ONCLOSE ser autodisparable cuando se cierre la
aplicacin, pudiendo disparar desde l procesos y otras opciones que deseemos ejecutar automticamente al finalizar la aplicacin.

e Ejemplo: Creacin de mens Autoexec y Onclose


A continuacin vamos a crear el men de arranque y el de cierre de una aplicacin. Para ello continuamos con la aplicacin de libros del ejemplo anterior. En dicho ejemplo creamos el men correspondiente a la tabla LIBROS,
pero la aplicacin cuenta con dos tablas ms: AUTORES y EDITORES.

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.

Vamos a crear a continuacin un men que llamaremos General y en el que


incluiremos cuatro controles de texto. El primero va a ser el ttulo del men,
de modo que pinchamos sobre el control texto esttico en la barra de herramientas del editor del men, lo arrastramos a la zona del men en la que
queremos que aparezca, hacemos clic con el botn derecho del ratn y pulsamos el botn Editar opcin. Como ttulo opcional escribimos Men, y
como pistola elegimos NULA.
Creamos otro texto esttico con el que vamos a lanzar el men Libros, procediendo de igual modo: como ttulo opcional escribimos Libros, como
pistola elegimos incluir carpetas men y como bala elegimos el men Libros.
Con el siguiente texto esttico, que va a lanzar el men Autores-Editores,
escribimos el ttulo opcional Autores y Editores, como pistola elegimos in-

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.

El men Autoexec es el que va a disparar los mens de la aplicacin, de


modo que el men General siempre se dispondr en la zona izquierda de la
pantalla y desde l podremos elegir que a la derecha aparezca el men Libros o el Autores - Editores, as como salir de la aplicacin.

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

Seleccionamos entonces con qu control queremos sincronizarlo activando


la casilla de verificacin.

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

Crear un proceso con origen de lista (de la tabla maestra, PINTORES) en el


que en primer lugar se lea la ficha seleccionada y posteriormente se asigne
a la variable anteriormente creada el contenido del campo cdigo de dicha
ficha, es decir, el cdigo del pintor.
Al crear la rejilla correspondiente a la tabla de datos maestra (PINTORES),
activamos la casilla La seleccin ha cambiado y le asociamos el proceso
que acabamos de crear. De este modo, cada vez que seleccionamos un
pintor en la rejilla, se lanza el proceso y la variable se alimenta con el cdigo del pintor que est seleccionado.
Crear una bsqueda en la tabla maestra, por ejemplo, por el ndice NOMBRE (Todo el fichero).
Crear la rejilla de la tabla de datos histrica (la de OBRAS del pintor).
Crear una bsqueda en la tabla de datos histrica (OBRAS) en la que el ndice de la misma sea el de la tabla de datos maestra (es decir, una bsqueda de obras por el ndice autor). Como modo de bsqueda elegimos
parte izquierda de la clave, sin pedir formulario, y finalmente, en los datos
iniciales de la bsqueda como contenido inicial del campo se escribir el
nombre de la variable creada anteriormente.

Bsqueda rejilla

Una vez realizados estos pasos, en el men de tipo formulario se crearn


dos controles Bsqueda rejilla
, uno correspondiente al de la tabla maestra y otro al de la tabla histrica, haciendo doble clic sobre el de la tabla
maestra, y ejecutando la opcin Controles/Sincronizar, se indicar a Velzquez con qu control habr que sincronizarlo.
Obviamente, la sincronizacin puede realizarse entre ms de dos rejillas de
tablas de datos.

Sincronizacin de un control texto o dibujo con una rejilla


Bsicamente sern los mismos pasos que en el punto anterior. El control de
texto o de dibujo habitualmente disparar un proceso que influya sobre los
registros de la rejilla sincronizada.

Sincronizacin de rboles con controles de bsqueda rejilla


Su funcionamiento es el mismo que el de la sincronizacin de rejillas.

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.

Ejemplo: sincronizacin de controles en un men tipo formulario

Con esta aplicacin vamos a visualizar las ventas realizadas de un artculo


entre unas determinadas fechas, previa seleccin de su correspondiente familia, y un cliente.
En primer lugar debemos crear el esquema de tablas. Para ello seguimos
los siguientes pasos:
Abrimos el Editor de Proyectos de Velzquez Visual.
Una vez dentro del Editor de Proyectos, pulsamos el botn
Esquema
de tablas para crear las tablas y sus enlaces. En este caso el esquema
est formado por tres tablas maestras y una maestra arbolada. Dichas
tablas se crean utilizando los botones
Nueva tabla maestra y
Nueva tabla arbolada, situados en la parte derecha de la ventana del Esquema de Tablas.
Una vez creadas las tablas debemos establecer los enlaces entre ellas.
Para ello suponemos que un artculo slo puede pertenecer a una familia, mientras que a una misma familia pueden pertenecer muchos artculos: ARTCULOS es histrico de FAMILIAS. Por otro lado, un artculo
puede aparecer en muchas ventas, mientras que una venta va a ser de
un solo artculo, es decir, VENTAS es histrico de ARTCULOS. Por ltimo, un cliente puede aparecer en muchas ventas, pero una venta se refiere a un solo cliente, luego VENTAS es histrico de CLIENTES.

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

Para introducir un nuevo campo, seleccionamos la carpeta Campos que


est dentro de la ventana anterior, y pulsamos el botn
Nuevo campo. Velzquez Visual crear un nuevo campo. Editamos las propiedades
del campo NOMBRE y sustituimos el nombre del campo por RAZON-SOCIAL (para modificarlo pulsamos el botn F2) y pulsamos la tecla Intro.
Debemos repetir los pasos para crear otro campo en la tabla CLIENTES.
Las propiedades de dicho campo se presentan en la siguiente tabla (Nota: ID se refiere al identificador del campo: el texto que podemos modificar pulsando la tecla F2 y que se muestra en la ventana donde creamos
los nuevos campos):

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

En la tabla VENTAS aadimos los campos siguientes:

ID

Nombre

Tipo

Otras propiedades

FECHA

Fecha

Fecha

Contenido inicial: fHoy()

CANT

Cantidad

Numrico

Longitud: 4, Decimales: 2, Contenido


inicial: %ARTICULO.PVP%

IMP

Importe

Numrico

Longitud: 4, Decimales: 2, Contenido


inicial:
fRedondear(%CANT%*%PRECIO%, 2 )

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

Texto esttico: este texto presentar el ttulo del men. Entramos en la


ventana de propiedades del control, donde pulsamos el botn Editar Opcin. Aparecer la ventana propiedades de una opcin de men y en ella
escribimos como Ttulo opcional Informtica Market y como pistola elegimos Nula.

258 259

VELAZQUEZ VISUAL

Texto esttico

Texto esttico: lanzar las altas de los elementos de FAMILIAS. Si en el


cuadro pulsamos el botn Editar Opcin aparece la ventana de propiedades, en la que escribimos FAMILIAS como Ttulo opcional, mientras que la
pistola ser Formulario (Alta). La bala a usar es el formulario FAMILIA-NUEVA/MOD.

Texto esttico: se encargar de lanzar las altas de Clientes. Para ello,


en las propiedades del control, pulsamos el botn Editar Opcin. Aparecer entonces la ventana de propiedades de una opcin de men en la
cual escribimos CLIENTES en Ttulo opcional, elegimos como pistola la
opcin formulario (alta), mientras que la bala es el formulario CLIENTENUEVO/MOD.

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

Calendario: en nuestro men vamos a incluir dos controles calendario.


Para ello debemos crear primeramente dos variables, utilizadas para definir
las dos fechas entre las que se acotarn las ventas. Procedemos del siguiente modo:
En el Editor de Proyectos, pulsamos la tecla Insert dentro de la zona blanca correspondiente al rea denominada Variables. Velzquez Visual mostrar la ventana Propiedades de la variable global, en la que creamos las variables FECHA DESDE y FECHA HASTA.

PROPIEDADES DE LA VARIABLE GLOBAL FECHA DESDE

04

Desarrollo bsico
de una aplicacin
e

PROPIEDADES DE LA VARIABLE GLOBAL FECHA HASTA

Una vez creadas las variables globales podemos crear los dos controles
calendario, que tendrn las siguientes propiedades:

262 263

VELAZQUEZ VISUAL

Bsqueda con rejilla

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

Casillero alimentado por proceso

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.

Vamos a seleccionar como Modo a buscar la opcin Entre lmites. Ahora se


pretende sincronizar el rbol tabla completa FAMILIAS con el casillero de

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:

En l se llama a la bsqueda creada antes, y se aade un retorno para que


devuelva al resultado (aunque realmente no lo vamos a visualizar en la rejilla de ARTICULOS, sino en el casillero, es obligatorio especificar un recurso para que el proceso funcione correctamente, aunque no sea el que usemos realmente).
Ya podemos crear el casillero, que tendr las siguientes propiedades:

04

Desarrollo bsico
de una aplicacin
e

Ahora creemos el control Casillero alimentado por proceso, para lo cual,


dentro del men formulario AUTOEXEC, hacemos clic sobre el control Casillero alimentado por proceso, que tendr estas propiedades:

Bsqueda con rejilla: vamos a crear el control que nos mostrar la rejilla de ventas.

Bsqueda con rejilla

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:

La bsqueda se compone de los siguientes ndices:


a) ndice Fecha: que tiene el Modo a buscar Entre lmites. Como lmite inicial la variable FECHA-DESDE y como lmite final la variable FECHAHASTA.
b) ndice ARTICULO: se cruzar con el ndice anterior. Como Modo a buscar tiene Parte izquierda clave por el campo ARTICULO, y como condicin activa tiene la variable ARTICULO-CURSO.
c) Finalmente se cruza el ndice CLIENTE que como Modo a buscar tiene
Parte izquierda clave por el campo CLIENTE, y como condicin activa
tiene la variable CLIENTE-CURSO.
De esta manera se pretende condicionar la bsqueda de las ventas a la seleccin de un artculo y un cliente, adems del intervalo de fechas.
Procesos adicionales: necesitamos dos procesos (ARTICULOS-TODOS
y CLIENTES-TODOS), que tendrn las siguientes propiedades:

04

Desarrollo bsico
de una aplicacin
e

Estos procesos irn asociados, dentro del men formulario AUTOEXEC, a


dos etiquetas.

270 271

VELAZQUEZ VISUAL

Estas etiquetas van a continuacin de las etiquetas Seleccione un artculo


haciendo clic o pulse en y Seleccione un cliente haciendo clic o pulse en,
que ya habamos creado antes.
Con estos procesos se consigue que, en ejecucin, si el usuario pulsa sobre alguna de esas opciones, aparezcan todas las ventas de todos los artculos y todos los clientes.
Finalmente, realizaremos las distintas sincronizaciones entre controles. Para ello, dentro de la ventana de edicin del men tipo formulario, debemos
seguir los siguientes pasos:
a) Seleccionamos el control que vamos a sincronizar.
b) Pulsamos la opcin de men Controles/Sincronizar, apareciendo la
ventana Sincronizar a.
c) Dentro de la ventana Sincronizar a, seleccionamos el check del control
que va a sincronizarse.

04

Desarrollo bsico
de una aplicacin
e

Los controles que se van sincronizar son los siguientes:

Control

Sincroniza a

rbol tabla completa: FAMILIAS

Casillero: ARTICULOS

Calendario: FECHA-DESDE

Bsqueda: VENTAS-FECHAS-ART-CLI

Calendario: FECHA-HASTA

Bsqueda: VENTAS-FECHAS-ART-CLI

Bsqueda rejilla: CLIENTES-COD

Bsqueda: VENTAS-FECHAS-ART-CLI

Casillero: ARTICULOS

Bsqueda: VENTAS-FECHAS-ART-CLI

Con esto podemos dar por terminado el ejemplo.

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

tos que protagonizan la accin. Por ejemplo, al elegir la pistola Bsqueda,


podremos elegir como bala cualquiera de las bsquedas definidas en el
proyecto.
Hay dos tipos de mens: arbolados y tipo formulario. Los arbolados presentan las opciones de la aplicacin con apariencia de rbol de directorios,
mientras que los mens tipo formulario permiten usar la pantalla completa
para colocar controles que disparen las distintas opciones del men.
En los mens disponemos de controles que nos permiten editar el contenido de variables, ver rejillas, rboles, casilleros, etc.
La sincronizacin permite actualizar el contenido de controles en funcin de
los cambios realizados en el contenido de otros controles.
Velzquez Visual necesita un men de arranque: el men Autoexec. En el
caso de que la aplicacin pida usuario, podemos definir un men para cada usuario, sin que necesite ser el Autoexec. Tambin podemos incluir en el
proyecto un men de finalizacin: el men Onclose.

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:

Las propiedades del localizador son las siguientes:


Nombre: nombre que damos al localizador.
Tabla de datos: tabla de datos sobre la que va a actuar.
Rejilla: identificador de la rejilla que se desea presentar en el localizador. Slo aparecern las rejillas definidas para la tabla de datos especificada en el
parmetro anterior (la tabla sobre la que trabaja el localizador).

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

: quita de la lista de ndices el que est seleccionado.

Mover hacia arriba


cionado.

: desplaza una posicin hacia arriba el ndice selec-

Mover hacia abajo


cionado.

: desplaza una posicin hacia abajo el ndice selec-

El ndice que se encuentre en la primera posicin de la lista ser el que se


presente por defecto en el combo box en tiempo de ejecucin, si el usuario abre dicho combo, el resto de los ndices aparecern en el orden definido por el programador.
Tenemos tambin manera de crear automticamente un localizador a partir
de una rejilla. Seleccionamos la rejilla de la tabla que nos interese y elegimos la opcin del men Objetos/Crear localizador con rejilla.
Nos crear entonces un localizador con el mismo identificador que la rejilla
de partida, que tiene asignado sta para presentarlo y con todos los ndices
incluidos por defecto.
Adems, los localizadores ofrecen la posibilidad de subindexar. Veamos lo
que es con un ejemplo. Supongamos que tenemos un mapa con dos tablas: PROVINCIAS y POBLACIONES. Es claro que el diseo debe ser el siguiente:

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.

En el mapa vamos a incluir una variable global en la que almacenamos el


cdigo de la Provincia por defecto con la que trabaja el usuario. La llamaremos PROVINCIA.
Creamos a continuacin un localizador, asocindolo a la tabla POBLACIONES y desactivamos el check Todos los ndices. En la lista de ndices de la
tabla POBLACIONES hacemos doble clic sobre el ndice CODIGO, abrindose el cuadro siguiente.

Desarrollo bsico
de una aplicacin

276 277

VELAZQUEZ VISUAL

Lo que pretendemos es restringir el campo PROVINCIAS, de modo que


cuando escribamos un cdigo de poblacin en el localizador nos busque
slo en la Provincia por defecto (en la provincia de la poblacin y no en
todas).

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

La subindexacin no podr ser utilizada en ndices de palabras o de aproximacin alfabtica ternaria.

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)

4.5.1. Interfaz del Ejecutor (VRunner)


Archivo
Cuando ejecutamos un mapa de Velzquez Visual con VRunner, adems de
los mens creados por nosotros dentro de la aplicacin, tenemos otras opciones accesibles sin necesidad de programarlas.

En el men Archivo tenemos las siguientes opciones:


Abrir (Ctrl+A) un mapa. Ya sabemos que hay dos maneras de guardar un
proyecto, el formato .MAP y el formato .VAM. Con VRunner podremos abrir
los dos.
La opcin Registro ficheros... nos muestra una ventana donde podemos ver
los ficheros de los mapas que tenemos abiertos. Nos dice en qu estado
estn y en qu directorios hay archivos de la aplicacin.

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

Partir contenedor: el contenedor es un archivo donde se guardan campos


de tipo objeto de tablas (campos de tipo texto, texto enriquecido, dibujo,
objeto OLE y e-mail). A partir de la versin 5.0 se genera un contenedor por
cada tabla que contenga campos objeto. En versiones anteriores esto no
era as, pues exista un nico contenedor por aplicacin. Esta opcin se
usar para convertir aplicaciones de versiones anteriores, es decir, para que
se genere, a partir del nico contenedor que tienen, uno por cada tabla. Esta opcin solamente estar activada si el usuario tiene un nivel de privilegio
igual o superior a 92.
Podemos desactivar la opcin Transacciones, que veremos ampliamente
ms adelante, aumentando la velocidad de la aplicacin pero disminuyendo la seguridad de los datos. Desactivar esta opcin puede ser peligroso
para la integridad de los datos.

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

Preparar pgina: en el cuadro de dilogo mostrado en esta opcin podemos


definir los mrgenes de impresin, centrar el informe y elegir las unidades
de medida para los documentos (pulgadas o centmetros).

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.

Usuarios: pinchando esta opcin aparece la ventana Edicin de usuarios, en


ella se crean, modifican y eliminan usuarios y grupos de usuarios. En la lis-

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.

En la lista de la derecha aparecen los usuarios que pertenecen a un grupo


concreto. En cada grupo puede haber un nmero ilimitado de usuarios. Los
supervisores del Proyecto pueden dar de alta nuevos grupos y nuevos
usuarios, y en los casos que consideren oportunos pueden modificar a
otros usuarios, reconstruir el sistema, crear otros supervisores, etc.).

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

Nombre: nombre del usuario.


Palabra clave: contrasea que va a utilizar dicho usuario para entrar en el
programa.
Privilegio: nivel de privilegio que tendr el usuario para acceder a la informacin del sistema. Ser un nmero entre 1 y 100. En el Navegador existen
ciertas opciones de listas ya preprogramadas que estarn activadas o desactivadas segn el nivel de privilegio de los usuarios. stas son: Modificar
campo, Modificar campo si..., Fundir fichas, Activar/Desactivar transacciones, Partir contenedor por tabla, Exportar ASCII, Supervisor: un usuario nunca podr crear usuarios con un nivel de privilegio superior al suyo.
Grupo de usuarios: grupo al que pertenece el usuario.
Men inicial: men a ejecutar cuando el usuario arranque la aplicacin. Podremos crear uno para cada usuario o para cada grupo de usuarios. Esto
es muy til cuando tenemos diferentes tipos de usuarios: gestores, operadores de copia, supervisores, usuarios finales, pblico general, etc. Slo estarn disponibles aquellos mens que el programador haya creado como
pblicos, es decir, que no haya activado la propiedad de men Privado.
Estilos: si el programador ha creado estilos de usuario stos se mostrarn
en esta parte de la ventana, pudiendo el usuario administrador asignar los
estilos que desee a cada usuario. Gracias a los estilos y mediante condiciones, un usuario podr o no tener acceso a determinadas opciones del
programa, como poder dar de alta, eliminar o modificar registros, ver rejillas
o determinadas columnas de rejillas, tener acceso a opciones de men, etc.
Perfiles: stos se definen en el personalizador y determinan la presentacin
especfica de objetos personalizables para cada usuario final o para todos
los usuarios de la aplicacin. De este modo, por ejemplo, personalizamos
una misma aplicacin a distintas empresas. Para tener acceso a esta op-

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.

Ejemplo: Estilos de usuario


Supongamos una aplicacin para una librera, en la que tenemos tres tablas: LIBROS, AUTORES y EDITORES, con sus correspondientes objetos
visuales (rejillas, formularios, bsquedas, mens, etc.). Vamos a crear un estilo de usuario que no permita dar de alta libros a los usuarios que figuren
con ese estilo.
Abrimos el mapa de la aplicacin, y en el men Edicin/Propiedades del
proyecto pinchamos en la pestaa Estilos y seleccionamos el check Pedir
usuario.

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.

Cuando ahora el usuario intente dar de alta un libro en el men de libros, el


botn Aceptar del formulario estar inactivo, es decir, el usuario no puede
dar de alta libros.

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:

En ella se informa sobre los mensajes enviados y recibidos, nmero de


mensajes que no han podido ser enviados y sobre el estado de la conexin.

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)

Esta ventana, adems de los datos de tica Software y el copyright, nos da


informacin de la aplicacin que se encuentra en ejecucin, en qu Versin
se encuentra sta, el nombre de su desarrollador y su N de Licencia.

4.5.2. Navegacin en el ejecutor


El Navegante es una utilidad que Velzquez Visual ofrece a los usuarios
cuando se encuentran utilizando una rejilla. El diseador del proyecto no tiene que realizar ni configurar nada para que est disponible.

Desarrollo bsico
de una aplicacin

288 289

VELAZQUEZ VISUAL

Como su nombre indica, permite navegar por la informacin contenida en


las distintas tablas de datos a travs de los enlaces declarados. Partiendo
de una rejilla origen se puede ir obteniendo informacin asociada de forma
rpida y simple.

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.

Opciones del Navegante


Maestros
Al seleccionar la opcin Maestros o al pulsar el botn correspondiente
aparece un cuadro de dilogo donde podemos elegir una de las tablas
maestras de la lista actual y una rejilla para poder ver los registros de la tabla maestra que estn siendo apuntados por los registros de la lista actual.

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.

Por ejemplo, si nos encontramos en una lista de modelos de automviles


(histrico de marcas de automviles), podemos obtener mediante esta opcin una lista con las marcas (nos movemos al maestro). Al navegar hacia
maestro aparecern todos los maestros de todos los registros de la rejilla
de la que partimos.

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

4.6.1. Exposicin del problema


En este ejemplo vamos a disear una agenda de tareas. Contendr informacin acerca de tareas a realizar, de las que consideraremos los siguientes datos:
Persona que debe realizar la tarea.
Cliente al que se refiere la tarea.
Tipo de tarea.
Pequea descripcin de la tarea (asunto).
Fechas de inicio y final de la tarea.
Aviso das antes del vencimiento de la tarea.
Hora de inicio y fin de la tarea.
Descripcin larga (documentacin de la tarea).
Estado de la tarea (realizada o no).
Fecha y hora de realizacin.
Descripcin de la realizacin (documentacin de la tarea).

04

Podremos visualizar la informacin de dos maneras:


Presentando una tarea en concreto mediante un formulario. Separaremos la
informacin mediante pestaas: una con los datos de configuracin, otra
que contendr la descripcin larga y una tercera que contendr los datos
de la realizacin.
A travs de listados de tareas organizados en filas (fichas) y columnas (datos de las fichas), que son las rejillas.

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.

4.6.2. Esquema de Tablas


Tablas y Enlace
El primer paso es ver cmo organizamos la informacin. Dependiendo de lo
que queramos conseguir, podemos dividir la informacin en una, dos o ms
tablas, enlazndolas de una cierta manera. ste es el punto ms importante a la hora de disear una aplicacin, ya que un buen diseo dar mayor
potencia y versatilidad a la aplicacin.

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

Aceptando, nos aparecer la ventana de propiedades de la tabla:

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.

Nueva tabla maestra

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

Escribimos nombre plural (Tareas) y nombre singular (Tarea). Para el resto


aceptamos lo que nos pone por defecto. De este modo nos va a crear un
campo llamado Nombre, con varios ndices: uno alfabtico, otro por palabras y un tercero por trozos de palabras. Esto tambin lo hizo Velzquez Visual al crear la tabla anterior.

Veremos cmo, en el esquema de tablas, Velzquez representa los iconos


correspondientes a las dos tablas maestras recin creadas.
Ahora ya estamos en condiciones de establecer el enlace entre las dos tablas. Para ello pinchamos con el ratn sobre el enlazador de la tabla maestra (CLIENTES) y arrastramos hasta la tabla histrica (TAREAS).

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

De momento vamos a trabajar con estas tablas. Ms adelante veremos un


tipo nuevo relacionado con el campo Tipo de Tarea.

Campos de la tabla CLIENTES


El siguiente paso es la creacin de campos dentro de las tablas. En el caso
de CLIENTES es suficiente el campo Nombre, aparte del Cdigo, que se
cre automticamente al generar la tabla. Tambin se cre en esta tabla el
enlace a histrico cuando realizamos el enlace.

04

Desarrollo bsico
de una aplicacin

Campos de la tabla TAREAS


En la tabla TAREAS hemos de crear varios campos aparte de los que hicimos que Velzquez Visual creara por defecto. Por un lado tenemos los campos CODIGO y NOMBRE, y los ndices CODIGO, NOMBRE, PALABRAS y
TROZOS, que Velzquez Visual cre, por defecto, con la tabla. Por otro lado tenemos el campo CLIENTES y el ndice correspondiente CLIENTES,
que se crean al establecer el enlace.

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.

La funcin de este campo es la de indicar el nmero de das que tenemos


para realizar una tarea, comenzando a contar desde el da que damos de alta la tarea.

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.

Das que faltan


Creamos ahora otro campo, al que damos el identificador DIAS-FALTAN. En
las Propiedades del campo le asignamos el Nombre: Cuntos das faltan
para terminar la tarea, su tipo ser Frmula numrica.
Para el contenido inicial necesitamos crear una variable. Vamos al panel de
las variables e insertamos una
. Como nombre ponemos Fecha de la agenda, la persistencia ser En memoria (independiente
cada tarea 2 plano) y de tipo Fecha. Como identificador usaremos AGENDA-FECHA.

04

En el Contenido inicial del campo escribimos la frmula (%FECHA-HASTA%


- $AGENDA-FECHA$) + 1. Para ello abrimos el asistente y con ayuda de las
opciones del men
campos y variables, respectivamente, construimos la frmula.

Nuestra agenda va a tener un objeto llamado Agendizador, que consta de


un calendario (en el que podemos seleccionar una fecha) y de una rejilla en

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.

Hora de inicio y final


Aadimos un nuevo campo a la tabla TAREAS y le damos identificador HORA-INICIO. En las Propiedades del campo le damos el Nombre: Hora de inicio, le asignamos el tipo Hora y en la ventana Contenido inicial pinchamos
en el Asistente y elegimos la funcin Ahora de la carpeta Horas, la cual nos
devuelve la hora del instante en el que rellenamos el campo.

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.

Este campo se usar para guardar la hora correspondiente al momento en


el que se da de alta una tarea.
Creamos otro campo al que damos el identificador HORA-FIN. En las Propiedades del campo le damos el Nombre Hora de finalizacin y su tipo ser Hora.

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.

En este campo guardaremos si la tarea est realizada o no, de ah que 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

do el programador (llamada telefnica, enviar fax, enviar correo electrnico,


visita, programar, analizar, otras tareas).
Vamos a introducir un nuevo tipo de tabla especfica para datos concretos,
listas de informacin que el diseador del proyecto define y el usuario final
no puede alterar: las tablas estticas. Cada registro de una tabla esttica
consta de un Cdigo y una Descripcin. Pueden ser, por ejemplo, los das
de la semana, las estaciones del ao o cualquier informacin que sea de
contenido invariable y no modificable. El cdigo slo puede tener un dgito,
que puede ser tanto un nmero como una letra; as que si vamos a crear
una tabla esttica con ms de nueve elementos, tendremos que utilizar nmeros y letras o solamente letras. Posteriormente, dentro de un formulario
ser posible usar una lista desplegable (list box) o un combo box para mostrar los datos de la tabla esttica apuntada.
Este campo, Tipo de Tarea, va a estar entonces enlazado a una tabla esttica, que contendr cada uno de los tipos de tarea que hemos tenido en
cuenta con un cdigo. En el campo se guardar ese cdigo cuando trabajemos con la aplicacin.

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:

En esta ventana de Propiedades de la tabla esttica debemos introducir los


datos que van a pertenecer a la tabla de tipos de tarea.

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.

Como Nombre pondremos Tipo de Tarea. Y pasaremos a la caja de Enlace.


Donde nos pregunta Enlazado?, tenemos que elegir de entre toda la lista
el elemento Tabla Esttica.

04

Entonces Velzquez Visual nos dejar escoger un identificador, es decir, el


nombre con que conocemos la tabla esttica que queremos enlazar con
ese campo. Al abrir el control, nos aparecern todas las tablas estticas que
tengamos en el proyecto. Una misma tabla esttica puede estar enlazada a
campos pertenecientes a tablas distintas, e incluso a varios campos de una
misma tabla (por ejemplo, podramos escoger dos tipos de tareas para el
mismo registro). Escogemos la que necesitamos para este campo: TIPOSTAREAS.
En este campo guardaremos, por tanto, el cdigo del tipo de tarea, que enlazar en ejecucin con la tabla esttica TIPOS-TAREAS.

Realizada
Para este campo usaremos de nuevo el tipo booleano.

Aqu recogeremos si la tarea fue realizada y la usaremos como condicin


para el proceso que coger la fecha y hora en que se active como datos de
la realizacin de la tarea.

Desarrollo bsico
de una aplicacin

310 311

VELAZQUEZ VISUAL

Fecha y Hora de Realizacin


Crearemos ahora dos campos, que llamaremos Fecha realizado (identificador FECHA-REALIZADO) y Hora de Realizado (HORA-REALIZADO), naturalmente de tipo fecha y tipo hora, respectivamente.
Para que cuando marquemos que ha sido realizada la tarea nos recoja en
estos campos la fecha y hora del momento y los guarde, tenemos que aadirles un contenido inicial. Empezamos por el campo Fecha realizado y
arrancamos el asistente de frmulas del contenido inicial.

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

Por tanto, pulsamos en el botn


Campos F5, escogemos el campo Realizada y damos al botn
, dejndonos de nuevo en el asistente de la funcin fDecidirDato().

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.

Entonces aceptamos, apareciendo la frmula en el editor de frmulas. Pulsamos de nuevo


y la frmula queda en el contenido inicial del campo.

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.

Enlace a hermano contiguo e ndices


Aqu vamos a introducir un nuevo tipo de enlace, que es el que nos servir
para pasar de una tarea a otra al visualizar un formulario. Este enlace se realiza a travs de un ndice de la tabla y ser el que nos lleve de un registro a
otro de la misma tabla, es decir, a otra Tarea de la misma tabla, en funcin

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.

Ahora vamos a establecer el enlace a hermano contiguo y para hacerlo, o


bien creamos los campos y los enlazamos, o bien usamos el asistente. Vamos a utilizar este ltimo. Pulsamos el botn
Crear punteros y escogemos Crear puntero hermano.

Nuevo ndice e ndice


del campo
Crear punteros

316 317

VELAZQUEZ VISUAL

Nos saldr entonces la ventana de Creacin de campo puntero: Hermano.


En ella completamos el nombre, que ser Tarea, el identificador, que ser
TAREA (Velzquez Visual ya se encarga de ponerlo en maysculas).

04

El control N de Partes Comunes lo dejaremos a cero ya que queremos que


nos aparezcan todas las tareas ordenadas por fecha. Si tuviramos como
valor uno, eso querra decir que a partir de la tarea abierta slo podramos
ir a las de igual fecha, ordenadas por hora de inicio (esto podra ser interesante si quisiramos movernos slo por las tareas del da), y si pusiramos
como valor dos, eso querra decir que nada ms veramos las que tuvieran
igual fecha e igual hora de inicio, cosa que no parece til en esta aplicacin.
Por ltimo est la caja Direccin. Escogemos Ambos para que nos cree hermanos en las dos direcciones, de modo que podamos movernos a las tareas siguiente y anterior.
Aceptamos esta pantalla y entonces Velzquez Visual nos crea dos campos, aadiendo los sufijos PREV (enlace al anterior) y NEXT (enlace al siguiente) al identificador que hemos propuesto.

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

Si en vez de escoger el ndice de fecha hubiramos escogido el de Cliente,


podramos haber aadido los componentes de FECHA y HORA, aadido el

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.

4.6.3. Objetos Visuales

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

Dentro de esta carpeta creamos cinco subcarpetas, tambin llamadas


Clientes, pero con los iconos correspondientes a rejillas, formularios,
bsquedas, informes y mens, que son los objetos visuales que van a
contener.

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

Tenemos que asignarle entonces a qu tabla pertenece (CLIENTES), y


dando tabulador o posicionndonos con el ratn, Velzquez Visual nos
pondr el nombre directamente. Como tenemos configuradas las fuentes
por defecto, ya nos aparecen en su apartado, aunque podramos aadir
ms para esta rejilla en concreto. De momento no vamos a tocar ms en
esta ventana. Aceptamos y cambiamos el identificador por uno ms claro
(CLIENTES).

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

Como la rejilla es nueva, nos aparece el asistente de creacin de rejillas.


Aqu seleccionamos qu campos veremos en ella. Si pulsamos doble clic
sobre los campos seleccionables, stos irn pasando a los campos seleccionados. Podemos tambin cambiar el aspecto de la cabeza, cuerpo y pie
de la rejilla (color del texto, del fondo, tipo de letra de entre los tipos que
haba en la lista que tenamos en la anterior ventana de propiedades) y si
ser Tipo botn, es decir, con cabeceras de aspecto tridimensional. Pulsando Crear segn seleccin tendremos creada la rejilla con aquellos campos seleccionados. Sin embargo, si queremos crearla con todos los campos de la tabla, no hace falta seleccionar ninguno, simplemente definimos
el aspecto que queremos para la rejilla y pulsamos Crear con todos los
campos. En este caso usaremos esta ltima opcin sin modificar nada en
cuanto al aspecto.

Coloreado rpido

Nos aparece entonces la ventana de diseo de rejillas, en donde haremos


varios cambios. Lo primero que haremos ser cambiar los colores, usando
para ello el asistente. Pulsamos el botn
, y elegimos, por ejemplo, Azul
pastel. En este men tenemos una serie de paletas estndar que nos pueden servir para homogeneizar las rejillas de toda la aplicacin.

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

Propiedades del objeto

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.

Ancho del contenido


Ancho del ttulo

Esta rejilla, al presentarse en pantalla, y si no modificamos nada, aparecer


tal cual la estamos viendo ahora, es decir, con el mismo ancho. Vamos a forzar que la columna cdigo tenga el ancho sea el del contenido o el del ttulo. Esto podemos hacerlo con cualquier columna. Si pulsamos el botn
Ancho del contenido y pulsamos en la cabecera de la columna Cdigo vemos que no cabe el ttulo, as que pulsamos el botn
ancho del ttulo y
de nuevo en la cabecera.
Con la columna Nombre haremos que aumente su ancho hasta completar
la pantalla, para lo cual pulsaremos en la cabecera, apareciendo la ventana
Propiedades de Columna de rejilla con la pestaa Cuerpo abierta, y en ella
activamos la casilla de Ancho variable.

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

En la ventana que nos aparece de Propiedades formulario especificamos la


tabla a la que pertenece (en este caso CLIENTES) apareciendo automticamente el nombre al llegar con el tabulador o posicionarnos con el ratn en
el Nombre. ste lo coge de las propiedades de la tabla, y como el formulario sirve para editar una sola ficha nos toma el singular.
Aceptamos y cambiamos el identificador por uno ms nemotcnico (CLIENTES), y entramos en l. Segn entramos, slo aparecen dos botones: aceptar y cancelar. Ahora tenemos que insertar los controles.

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.

Aparecer una ventana de configuracin en la que debemos elegir qu


campos queremos que nos cree en el formulario. Usaremos el botn Todos,
para que nos los seleccione l y aceptamos.

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 podemos ordenar un poco el formulario. Con ayuda de los botones


de maquetacin que tenemos a la izquierda de la ventana hacemos que los
controles se alineen.
Seleccionamos el fondo y lo ampliamos un poco para poder trabajar bien.
Colocamos los controles ms o menos donde deberan estar.

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

Tambin, en la pestaa de Estilos, cambiamos la forma de los controles de


edicin. Le quitamos el borde y ponemos al control de edicin del Nombre
ancho variable para que se estire cuando hagamos ms grande el formulario en ejecucin.

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.

Botn con texto

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

, al que llamaremos Opciones.

Opciones

336 337

VELAZQUEZ VISUAL

Este botn no tiene ninguna pestaa Comando, pues en s, el botn slo


sirve para mostrar otros. Lo que vamos a hacer ahora es crear otro, igual
que creamos el botn Aceptar y seguir. Lo llamaremos Eliminar y pondremos como funcin Eliminar controlado.

Pero en la pestaa Aspecto vamos a activar la casilla de men desplegable.


Eso quiere decir que el botn desaparecer y quedar asociado al que est por encima de l en el panel de la derecha, donde tenemos todos los elementos creados.

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

barra de herramientas de la izquierda para ponerlo despus del botn que


nos interese. Si hubiera ms botones para aadir, se pondran a continuacin del eliminar, o antes, conservando ese orden al mostrarlos, pero siempre juntos y justo detrs del botn men.

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

Escogemos como histrico el que tenemos TAREAS>CLIENTE y como


rejilla la que acabamos de crear TAREAS-CLIENTE.
En la pestaa de estilos ponemos Tamao: ambos variables, y ajustamos la
rejilla dejando un margen. De esta manera tomar el tamao que tenga el
formulario en cualquier momento.
Ahora retornamos al formulario del cliente. En l creamos un separador de
subformularios con el botn
, y lo aadimos al subformulario
. En la
lista slo aparecern aquellos formularios asignados a la tabla CLIENTES,
estando nicamente CLIENTE-TAREAS en este momento. Lo seleccionamos y con esto ya aparece en ejecucin, en edicin no. En la pestaa de
Estilos ponemos el tamao ambos variables.

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

Ya tenemos el formulario terminado. Pero hay un problema de maquetacin:


aunque hemos puesto el control de edicin de Nombre y el separador con
ancho variable, si hacemos ms grande el formulario, los botones se quedarn donde estn.

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

Podemos crear un control


cualquiera que admita ancho
variable, por ejemplo un
texto esttico, que
colocaremos a la izquierda
de los botones. De este
modo, al crecer el formulario
el control empuja hacia la
derecha a los botones y no
se quedan en su posicin
original.

subir y bajar despus de seleccionar el con-

trol (panel derecho), o bien usar el comando del men Controles/Cambiar el


orden tab (eje z), con lo que hay que ir seleccionando con el ratn y segn
el orden de tabulacin que queramos, uno a uno todos los controles sobre
el formulario, incluyendo aquellos que no son de edicin (segn los pinchamos stos van desapareciendo). La desventaja de esta ltima manera es
que no vemos los botones que pertenecen a controles desplegables, de
modo que, cuando terminamos de pinchar sobre el formulario, todos los
controles contenidos en botones desplegables aparecen en la ventana de
la derecha, agrupados al final, y hemos de indicar su orden de tabulacin
con las flechas.
Cuando indicamos el orden de tabulacin pinchando sobre el formulario,
los controles van desapareciendo, para volver a aparecer cuando pinchamos sobre el ltimo o sobre una zona vaca del formulario. Esto no es as
cuando se incluyen controles desplegables, ya que, una vez pinchado el ltimo control, hemos de volver a pinchar sobre el formulario (que ahora se
encuentra vaco) para que aparezcan los controles de nuevo (no reaparecen
automticamente).
Con esto ya tenemos el formulario terminado. Ahora bien, comenzamos diciendo que las rejillas pedan formularios para editar los datos. Caba la posibilidad de asociar tres tipos de formulario: altas, bajas y modificaciones.
Nosotros slo hemos hecho uno que sirve para las tres funciones, as que
vamos a introducirlo en la rejilla. Para ello volvemos a la ventana de propiedades de la rejilla (ALT+INTRO despus de seleccionarla), seleccionamos el
formulario en los tres controles.

Con esto tambin tenemos la rejilla terminada.

Le daremos tamao ancho


variable y, en la pestaa de
Estilos de las propiedades,
seleccionaremos Condicin
Visible. Ya comentamos que
Velzquez Visual trabaja con
booleanos. Cul sera la
condicin para que nunca
se viera el control? Pues
sera 0. Simplemente con
poner 0 como condicin en
un objeto, Velzquez Visual
evala el dato como falso, y
esto hace que no se cumpla
nunca la condicin. Luego
este control esttico nunca
ser visible. Sin embargo,
aunque no es visible, existe
y cuando el formulario
crezca, empujar los
botones hacia la derecha.
Para empujar los botones
hacia abajo podramos hacer
lo mismo, pero ya tenemos
el separador de pestaas
que ser el que lo haga.

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

La rejilla es la nica que tenemos creada: CLIENTES (si tuviramos ms nos


apareceran todas en el combo, pero slo las pertenecientes a la tabla de
datos a la que est asignada la bsqueda). Aadimos un ndice con el botn
Aadir, y en este caso escogemos el ndice cdigo.
Esta bsqueda nos servir para listar a los clientes por cdigo, de modo
que, en la ventana ndices, hacemos doble clic sobre el ndice cdigo, apareciendo la ventana Componente de bsqueda. En el control Modo de Buscar seleccionamos Todo el fichero. Aceptamos la ventana y aceptamos la
bsqueda, cambiando a continuacin el identificador por uno ms nemotcnico: CLIENTES-CODIGO.

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

De esta manera, en el localizador tendremos disponibles todos los ndices


para buscar un cliente, y si no est, crearlo con el botn para altas. La rejilla debe tener asociado un formulario de altas para que esta opcin funcione.

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

Crearemos entonces una nueva Carpeta subgrupos de men, con el botn


Aadir y le pondremos como ttulo Clientes. sta ser una subcarpeta
que contendr las opciones a disparar del men de clientes. Seleccionamos
para ella el sptimo de los iconos ( ) y activamos el check Abrir al inicio,
para que el rbol aparezca extendido cuando entremos al men. El paso siguiente es el de aadir opciones al men, con el botn
que aparece.

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

Usando los botones


Icono anterior/siguiente, podemos escoger el
icono ms conveniente de la lista de multi-iconos para la opcin. Elegimos
el primero ( ), aceptamos y ya tenemos una opcin de men.

Icono de bsqueda

Ahora podemos aadir las bsquedas al men arbolado. Empezaremos con


CLIENTES-NOMBRE. En realidad va a ser un listado, as que podemos asociar el tercero de los dibujos ( ). Como ttulo ponemos Por nombre, como
pistola usaremos la opcin Bsqueda (Permite Vaco) para que la rejilla se
muestre aunque no haya datos (dando la posibilidad de aadir entonces), y
como bala la bsqueda CLIENTES-NOMBRE que habamos creado.

Hacemos lo mismo con el resto de bsquedas, pero esta vez usando el


icono correspondiente ( ), porque stos s que van a pedirnos qu buscar. Y ya por fin tenemos el men completo con todas las opciones para
clientes. Salimos y ya estamos preparados para hacer lo mismo con la tabla TAREAS.

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

Podemos diferenciar las tareas ya realizadas de las pendientes, de modo


que stas se presenten de distinto color en la rejilla. Para ello entramos de
nuevo en la rejilla que acabamos de crear y pulsamos sobre una de las cabeceras de columna cualquiera.

04

Veremos que podemos escoger Fuente y color y Otros. Si activamos esta


ltima opcin, tendremos la posibilidad de poner colores a los datos segn
una condicin.

En este caso, si la tarea est realizada (o sea, %REALIZADA%=1) queremos


que se presente el texto de color gris. Ya explicamos que no hace falta escribir %REALIZADA%=1, basta con %REALIZADA%, ya que Velzquez Visual evala el valor y lo usa como condicin directamente.

Desarrollo bsico
de una aplicacin

352 353

Copiar condiciones coloresfuente


Pegar condiciones coloresfuente

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.

Creamos un formulario y le asignamos la tabla TAREAS. ste va a contener


elementos iguales y anlogos al formulario de Clientes: un separador de
pestaas, los botones Acepta y Sigue, Aceptar, Cancelar y Opciones/Eliminar. El campo Cdigo ser el de la ficha de cada Tarea, y Persona ser donde guardemos el nombre del usuario que la crea. El contenido inicial de ambos campos es automtico: por un lado el cdigo tiene como contenido inicial siguiente al ltimo y el campo Persona toma como valor la variable de
sistema u, que nos devuelve el nombre con el que se entra en VRunner.
Por tanto vamos a hacer que esos campos no sean editables. Para ello hay
que marcar la casilla Slo Lectura de la pestaa Estilos.

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.

Antes de ponernos a hacer los subformularios de las pestaas vamos a


completar el formulario. En el enunciado del problema se estableca que,
viendo una tarea concreta, se pudiera pasar a la anterior o posterior en el
tiempo. Para ello habamos creado un puntero a hermano contiguo con ndice por Fecha. Ahora es el momento de usarlo.
Crearemos dos botones que en la pestaa General tendrn por contenido
del texto los smbolos menor (<) y mayor (>), que en este caso simbolizarn
el moverse hacia una tarea anterior y siguiente, respectivamente. En la pestaa Comando especificamos qu hacer cuando pulsamos el botn: Moverse a hermano contiguo. Introducimos a continuacin qu campo ha de

Desarrollo bsico
de una aplicacin

354 355

VELAZQUEZ VISUAL

usar para moverse. Los que habamos creado se llamaban TAREA-PREV,


para el anterior y TAREA-NEXT para el siguiente.

Tecla aceleradora

Podemos aadir adems una tecla aceleradora. Pulsando en el botn


,
escogemos F8, con lo que, estando en el formulario y pulsando esa tecla,
nos moveremos hacia atrs. Hacemos lo mismo para el otro botn, escogiendo F9.

Finalmente, usando el truco que vimos al hacer el formulario de Clientes,


ponemos una etiqueta de texto entre los botones normales y stos que hemos creado, que sea invisible en ejecucin (condicin de visible=0), con ancho variable, para que si ampliamos el formulario los botones se muevan
hacia la derecha.

04

Subformularios del separador: Configuracin


Ahora vamos a hacer los subformularios que llevar el separador. Creamos
un formulario y ponemos como identificador TAREAS-CONFIG, le asignamos la tabla TAREAS y ponemos como nombre &1. Configuracin.

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

Para ello usaremos cajas, que creamos pulsando el botn


Caja de grupo, que nos servirn para agrupar los controles y organizar el formulario.

Controles Cdigo de Cliente y Nombre de Cliente


Es necesario crear una caja para cliente, de modo que pulsamos sobre el
control caja de grupo de la barra de herramientas, llevndolo sobre la posicin que queramos del formulario. En texto contenido de la pestaa General (propiedades de la caja) introducimos el ttulo Cliente. Pulsando el botn
Edicin creamos los controles de edicin de campo para Cdigo de
Cliente y Cliente.

Les damos el tamao adecuado y marcamos en Ms estilos de la ventana


propiedades del objeto: Botones arriba/abajo y Autocompletar. Esto hace
que en ejecucin podamos, pulsando los botones, subir y bajar por la lista
de clientes y que, escribiendo las primeras letras de uno, Velzquez Visual
nos lo complete.

Vamos a aadir a los dos controles de edicin un botn desplegable. ste


permitir que busquemos, demos de alta o modifiquemos un cliente.
Empezamos con el control de Cdigo. Al igual que habamos hecho para el
botn Opciones/Eliminar del formulario de Clientes, detrs de este control
(recordemos que en el panel derecho podemos ver el orden) creamos tres
botones, en los que aadimos en la pestaa de Aspecto de la ventana de
propiedades la opcin Men desplegable, con lo que desaparecern los
tres botones.

04

Ahora, en el control de edicin de Cdigo, marcamos la misma opcin, lo


que har que asuma esos tres botones como propios, mostrando el botn
de men desplegable. Vamos a editar ahora uno por uno los botones.
Hacemos doble clic sobre el primero de ellos en el panel de la derecha,
puesto que ya no los podemos ver en la maquetacin del formulario.

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.

Al siguiente control le asignamos como funcin a disparar Alta ficha de


maestro. Asignndole como campo CLIENTE y el formulario CLIENTES nos
permitir dar de alta un cliente desde este formulario. En la pestaa General, aadimos como contenido y tool tip: Alta.

04

Desarrollo bsico
de una aplicacin

El ltimo botn servir para editar el cliente localizado. As que la funcin a


disparar ser Edicin ficha de maestro, el campo ser CLIENTE y el formulario CLIENTES. En la pestaa General, aadimos como contenido y tool
tip: Editar.

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.

Control de Tipo de Tarea


Creamos primero una caja y la llamamos Tipo de Tarea. Para este control
usaremos el Combo box, pulsando el botn
y situndolo dentro la caja

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.

Cambiamos ahora el color de fondo foco por el que hayamos elegido.

Control de la Descripcin corta


En el control de edicin que se encuentra dentro de la caja Descripcin
corta, para bsquedas, editamos el contenido del campo Descripcin, que
es el nombre de la tarea (es decir, aqu realmente estamos poniendo nombre a las tareas). Para este campo usaremos un control de edicin de campo normal, que pondremos dentro de una caja. El ttulo de la caja ser Descripcin corta, para bsquedas. Aqu editamos este campo, que contendr
una descripcin escueta de la tarea por la que posteriormente podremos
hacer bsquedas.

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.

Activamos a los cuatro la caracterstica Botones arriba/abajo de la pestaa


Ms estilos, lo que permitir en ejecucin, cambiar la fecha, da a da, o el
nmero de das con esos botones.

Para los controles de calendario vamos a crear un botn desplegable que


nos permita escoger la fecha desde un calendario. Para ello creamos, como en casos anteriores, un botn de texto. Lo situamos en el orden de tabulacin detrs de cada uno de los controles y les asignamos como funcin
a disparar subformulario ficha actual. Esto nos lanzar un subformulario
cuando pulsemos el botn, pero para ello tendremos que crear primero el
subformulario.
Sin cerrar este formulario, vamos a la carpeta Subformulario Tareas, donde
creamos el que estamos editando, y creamos dos nuevos formularios. Les
asignamos la tabla tareas y al primero lo identificaremos como TAREAS-FECHA y al segundo como TAREAS-FECHA-HASTA.
Entramos dentro del primero de los dos y eliminamos los botones creados,
ya que no los vamos a necesitar. Insertamos un control calendario con el

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.

Le asignamos el campo FECHA de tal manera que, al seleccionar una fecha


del calendario, sta queda recogida en el campo.
Salimos del formulario y creamos otro igual pero apuntando el control a FECHA-HASTA.
Entonces cerramos los dos y volvemos al subformulario de configuracin.

Volvemos al botn desplegable en el panel derecho, damos doble clic para


que salgan las propiedades y completamos entonces, en la pestaa de Co-

04

Desarrollo bsico
de una aplicacin

mando, la funcin a disparar Subformulario ficha actual con el Formulario


que asignamos a cada uno.

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

Maquetacin y toques finales


Por ltimo, para que al ampliar el cuadro de dilogo estos controles agrupados queden mejor y no se descoloquen, hemos de dar ancho variable a
los controles de edicin de Nombre de Cliente (no al control de Cdigo de
Cliente, ya que, al estar en la misma lnea, se solaparan), Tipo de Tarea y
Descripcin corta, y a las cajas correspondientes.
Entre las cajas de Calendario y Horario vamos usar de nuevo el truco para
que se muevan los controles al ampliar el formulario. Para ello insertamos
un texto esttico con condicin de visibilidad 0 y que sea de ancho variable. El resto, las cajas y los controles, sern de ancho fijo.

Tenemos que acordarnos tambin de poner como color de fondo foco aquel
que hallamos elegido.

Subformularios del separador de subformularios: Descripcin


Larga

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.

Subformularios del separador de subformularios: Realizado


Creamos otro subformulario para los datos de la realizacin, con identificador TAREAS-DESC-REALIZADO y como nombre &3. Realizacin, asignado
a la tabla TAREAS.

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

Por ltimo hacemos una caja con el ttulo de Descripcin de la realizacin,


donde ir el control de objeto tipo texto para el campo Descripcin realizado.

Terminando el separador de subformularios

Subir y bajar

Para terminar con el separador de pestaas, aadimos los subformularios


en el separador que habamos creado, y en el orden que prefijamos. Para
ello pulsamos sobre el separador con el botn derecho del ratn, apareciendo la ventana de propiedades. Con el botn insertar seleccionamos los
subformularios asociados, en el mismo orden en el que aparecen las pestaas. Si tenemos que cambiar el orden, usamos las flechas
para colocar las pestaas.

Con esto ya tenemos terminado el formulario para Tareas.

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.

Bsqueda de Tareas de Hoy


Para buscar las tareas que tenemos para hoy, aprovecharemos el ndice FECHA, que tenemos ya creado.

Desarrollo bsico
de una aplicacin

368 369

VELAZQUEZ VISUAL

La bsqueda en este caso la haremos entre lmites. Esto es as porque en


este ndice tenemos dos componentes y hay que resolver las dos. Si nicamente hubiera una sola componente (Fecha), podramos buscar por la
parte izquierda de la clave la fecha de hoy, pero como tenemos dos componentes, si slo resolviramos el primero buscara una hora de inicio en
blanco con la segunda componente y no encontrara ninguna tarea, pues
todas tienen hora de inicio.

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.

Bsqueda entre fechas


Para esta bsqueda tenemos que introducir un nuevo elemento, un formulario especfico de bsqueda. Lo elegimos
en la Galera de objetos, y veremos que la forma de editarlo es igual que un formulario normal, slo que en este caso no aparece ningn botn. Velzquez Visual pone esos botones en ejecucin (uno de Buscar y otro para Cancelar
el formulario).
Antes que nada, como la bsqueda la vamos a realizar entre fechas, necesitamos dos variables para recoger las fechas lmite. Vamos entonces al panel de variables e insertamos dos, bien pulsando la tecla Insertar o con el
botn de la derecha sobre el fondo y pulsando
.
Creamos la primera, a la que ponemos como identificador BUS-FECHADESDE, como nombre Fecha desde y como tipo de dato el que es: fecha.
La persistencia (dnde queremos que se guarde y quin accede a ella) ser En memoria (independiente cada tarea 2 Plano). Esto es lo normal cuando usamos variables para una bsqueda entre lmites. De esta manera, el
mismo formulario de bsqueda puede ser usado al tiempo por varias personas, o la misma persona varias veces, sin que se compartan los valores.

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.

En estas variables recogeremos los valores de los lmites de bsqueda a


travs del formulario de bsqueda.

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.

Tal y como est el diseo, cambiando el valor de la fecha en un control de


edicin, cambiar tambin en el calendario respectivo, y viceversa. Velzquez Visual se encarga de refrescar ambos en ejecucin.
Ahora s, vamos a la carpeta de Bsquedas de Tareas y creamos un formulario para bsquedas, asignamos la tabla TAREAS, y le ponemos una descripcin acorde a cmo se usar: Bsqueda entre fechas. Aceptamos y como identificador ponemos TAREAS-ENTRE-FECHAS.
Una vez que tenemos creado el formulario, vamos a hacer el objeto visual
de bsqueda completo. Vamos a la Galera de Objetos y seleccionamos
Bsqueda en la base de datos. Asignamos la tabla de datos TAREAS y como nombre ponemos Tareas entre fechas. La rejilla que usaremos para presentar el resultado de la bsqueda ser la de TAREAS que venimos usando
siempre y el formulario inicial, el que acabamos de crear ahora: TAREASENTRE-FECHAS.

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

Para resolver el componente HORA-INICIO hemos de tener en cuenta una


particularidad de los campos tipo Hora. Si no resolviramos este componente (si no pusiramos lmites), podramos pensar que, tal y como pasara
si fuese de tipo alfabtico en cualquiera de sus modalidades, nos buscara
todas las tareas que resolviera por el primer componente (fecha) y luego nos
las ordenara por el segundo componente (hora de inicio). Pero he aqu que
las horas pueden ser nulas, esto es, una hora vlida son las 00:00h, y dejar
los lmites en blanco equivale a indicar que el lmite es cero. Por lo tanto, si
no ponemos lmites a las horas estamos buscando tareas que empiecen y
terminen a las 00:00, lo que es un error.
Hay tres maneras de tratar esto. Podemos crear otro ndice que tenga como componente nicamente FECHA. Tambin podramos dar a escoger a
travs del formulario y con ayuda de otras dos variables los lmites de horas. La tercera (que ser por la que obtenemos ya que, por un lado evitamos crear un ndice redundante y por otro, complicar el formulario pidiendo ms datos) ser la de poner unos contenidos iniciales fijos para los lmites.

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.

Si tenemos estados con


slo dos posibilidades
usamos booleanos:
activado, desactivado;
verdadero o falso, s o no.
Pero cuando tenemos
estados con ms de dos
posibilidades y usamos
variables para stos, nos es
interesante documentar los
casos en la descripcin de
stas. Podemos indicar para
cada estado cul ha de ser
el valor de la variable, sea
sta numrica o alfabtica,
de tal manera que cada vez
que la usemos de nuevo
sigamos la misma norma sin
confundir el convenio. Si
trabajamos con variables
numricas, como por
defecto el valor que toma es
0, es interesante que el
caso ms general sea el que
tenga este valor. As, si en
un formulario tenemos la
posibilidad de escoger un
estado, como por defecto el
valor de la variable ser 0,
estar escogido el estado
ms general
automticamente.

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

Ahora tenemos que disear el objeto visual Bsqueda en la base de datos,


seleccionndolo en la Galera de Objetos y con identificador TAREAS-AVANZADA, de nombre Avanzada y asignada a la tabla TAREAS. El formulario de
bsqueda es el que acabamos de crear y la rejilla asociada ser TAREAS.
Veamos cules son los componentes para la bsqueda y cmo vamos a
trabajar con ellos. Tenemos tres elementos para la bsqueda: Cliente, Estado y Fechas. Los tres sern opcionales, es decir, podremos elegir uno, dos
o los tres elementos para la bsqueda, luego los componentes de sta tendrn que tener una condicin.
En el caso de Clientes, la condicin para que se busque por este campo ha
de ser que est elegido uno, luego el cdigo ser distinto de cero. Por tanto,
el componente de la bsqueda Cliente ha de tener como condicin %CLIENTE%!0, o lo que es lo mismo, %CLIENTE%. No necesitamos especificar contenido inicial, pues Velzquez Visual ya lo toma directamente del control de
edicin del formulario. Por otro lado, si usamos este componente, ha de ser
cruzando con el resto de los datos obtenidos por el resto de componentes.
Para Estado tenemos una situacin particular. Tenamos tres opciones, todas las tareas, pendientes y realizadas, en los que la condicin era 0, 1 o 2,
respectivamente. Usaremos los ndices CODIGO y PDTES-FECHA para resolver esta bsqueda. Por un lado usaremos como componente el ndice
CODIGO, con modo de buscar: Todo el fichero, con lo que tendremos la lista completa de tareas. Para las pendientes, usaremos la componente PDTES-FECHA: si queremos las pendientes, se cumplir que la variable TAREAS-ESTADO ser igual a 1, luego cruzaremos la lista completa con las
que estn pendientes. Esta componente ha de tener entonces como caractersticas Mezcla: Cruzar, Modo de buscar: Todo el fichero, y de Condicin
Activa: $TAREAS-ESTADO$=1.

Desarrollo bsico
de una aplicacin

378 379

VELAZQUEZ VISUAL

En el caso contrario, que no queramos ms que las realizadas, tenemos que


agregar de nuevo el ndice PDTES-FECHA, pero esta vez con la opcin de
Mezcla: Quitar y con Condicin activa: $TAREAS-ESTADOS$=2.
De esta manera si queremos todas, el estado de la variable $TAREAS-ESTADOS$ ser 0, luego a la lista de tareas por cdigo no cruzar la siguiente componente para sacar las pendientes, ni quitar stas porque no se
cumplir la condicin activa de ninguna de las otras dos componentes. Si
el estado de la variable es 1, entonces de la lista por cdigo cruzar las que
estn pendientes y se quedar con esas, ya que se cumplir la condicin
activa, pero no se cumplir la condicin activa para quitar las pendientes.
En el ltimo caso, con el valor 2 en la variable, s se cumplir la condicin
activa para quitar las pendientes, quedando entonces de la lista por cdigo
slo las realizadas, pero no se cumplir la otra.
Por ltimo, la bsqueda entre fechas ser activada si se cumple que el booleano BUS-ENTRE-FECHAS, sea igual a 1, es decir, hayamos activado la
casilla. El ndice que usaremos ser FECHA y lo resolveremos igual que en
el caso de la bsqueda entre fechas, con modo de buscar: entre lmites, con
los mismos contenidos iniciales.

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

Para que la agenda funcione no necesitamos hacer nada ms.

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.

Men general arbolado


Dentro de la carpeta $Comunes creamos una que se llame Mens con el dibujo correspondiente y dentro creamos un Men Arbolado, seleccionndolo de la Galera de Objetos. Usaremos este men para aunar los dos que ya
tenemos de Clientes y Tareas. Pondremos como identificador de este men GENERAL-ARBOLADO y como nombre Men general. Incluiremos dos
carpetas subgrupo, a la primera la llamaremos Men general de nuevo y a
la segunda Salir.

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.

Men general tipo formulario AUTOEXEC


Desde la galera de objetos creamos un men tipo formulario, apareciendo
una ventana de edicin similar a la de los formularios. Elegimos los parmetros que queramos: color de fondo, dibujo de fondo, etc., en las propiedades del men (botn de la derecha sobre el fondo o ALT-ENTER). A continuacin pulsamos el botn
Men arbolado y lo arrastramos hasta el
centro del formulario. En las opciones del men (botn de la derecha), elegimos el men que queremos presentar, que ser el GENERAL-ARBOLADO, ponemos los estilos que nos parezcan mejores (borde, sombra, etc.) y
elegimos ancho variable, para que se adapte el tamao del men en funcin
de la ventana que lo contenga.

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

Ahora, volvemos al formulario y pulsando el botn


Dibujo o Gif, segn lo hayamos creado, posicionamos el dibujo donde queramos y elegimos en las propiedades del control el dibujo que hemos llamado SPLASH.
Finalmente, aadimos un ttulo pulsando el botn
Texto esttico. Pulsando con el botn derecho sobre l, podemos elegir el texto (Editar opcin), color, sombra, etc.

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

Podemos ir probando a crear un nuevo cliente:

Aceptamos y creamos una nueva tarea:

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:

Podemos probar a buscar entre fechas con el formulario que habamos


creado:

04

Tambin tenemos a nuestra disposicin la bsqueda avanzada:

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

Dnde se usa el objeto

(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

Seleccionando una variable global podremos ver en qu tablas y en qu


objetos visuales del panel derecho se utiliza y, al seleccionar estos ltimos, se puede ver en el control que aparece en la parte inferior de la
ventana en qu parte del objeto se usa.

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

Por tipo de objeto

(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

Objetos por tipo

400 401

Localizar objeto

VELAZQUEZ VISUAL

Si seleccionamos uno de ellos y hacemos clic dos veces, o pulsamos el botn


, nos localiza el objeto en el panel correspondiente.

Objetos por color

5.6

Objetos de un color

(F3)

Este inspector permite localizar objetos por el color de su identificador (el


color del identificador podemos elegirlo al pulsar con el botn derecho del
ratn sobre el identificador, seleccionando la opcin Cambiar color, F3).
Por ejemplo, si hemos personalizado un proyecto activando un color determinado para el identificador de los nuevos objetos que se aadan al
proyecto, podremos localizarlos fcilmente con este inspector. Para ello
basta con ejecutarlo y seleccionar el color de los objetos a buscar. Asimismo se podr ordenar la lista de objetos resultante por alguno de los criterios siguientes: Sin ordenar, por orden alfabtico o por tipo de objeto. Pulsando Shift+F3.

05

Inspectores

De igual manera que en casos anteriores, seleccionando uno de los objetos


nos lo localiza en el panel correspondiente.

5.7

Contenido de frmulas

Permite buscar objetos en los que se utilice una frmula determinada. Al


ejecutar este inspector se abrir el cuadro de dilogo siguiente:

Objetos por 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

Errores del proyecto

Mediante este inspector podremos localizar aquellos errores que tenga en


el proyecto, como campos inexistentes en partes de ndices; declaracin de
funciones, campos, variables, etc., inexistentes en las frmulas; declaracin
de objetos inexistentes, errores en informes, etc. En esta ventana aparecer en qu objeto hay errores y cul es la naturaleza de stos.

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

Asistente para edicin de frmulas

Las frmulas pueden utilizarse en cualquier cuadro de edicin que permita


introducir expresiones de tipo frmula. Normalmente haremos uso del
Asistente para edicin de frmulas, disponible en el botn Asistente, aunque tambin podemos introducirlas manualmente. Se aconseja el uso del
asistente ya que detecta errores.
El asistente est presente en todos los controles de edicin donde se permite emplear frmulas, de manera que al pulsar el botn Asistente aparecer la ventana:

ASISTENTE PARA EDICIN DE FRMULAS

La parte principal es un cuadro de edicin donde escribimos la expresin


de la frmula. En este rea del asistente insertaremos identificadores, smbolos y funciones a medida que los seleccionamos en las diversas opciones. De igual forma podemos insertar manualmente datos como parntesis,
operadores, campos, etc.
Los botones de la barra permiten acceder a una lista de:
Operadores (F3).

Operadores

Funciones (F4).

Funciones

Funciones de dll.

Funciones de dll

Funciones (objeto visual).

Funciones (objeto visual)

408 409

Campos
Variables Globales

VELAZQUEZ VISUAL

Campos (F5).
Variables Globales (F6).

Variables Locales

Variables Locales (F7).

Variables del Sistema


Cortar, Copiar y
Pegar

Variables del Sistema (F8).

Deshacer

Deshacer (Control + Z).

Verificar
Ayuda

Cortar (Control + X), Copiar (Control + C) y Pegar (Control + V).

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

Aceptar (Intro): guarda los cambios realizados en la frmula.


Operadores

Cancelar (Esc): cancela los cambios llevados a cabo en la frmula.

6.1.1. Sintaxis de las frmulas. Operadores y funciones


En una frmula se permiten expresiones tanto aritmticas (suma, resta, divisin...) como booleanas (lgicas). 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 y a las variables del sistema para poder crear las frmulas.

Operadores
Pulsando el botn
operadores aparecer en pantalla un asistente en el
que podremos seleccionar el operador necesario de entre los siguientes:

OPERADORES

Expresiones aritmticas: por ejemplo ((4 + 5 + 1) / 2) - (45 / 8). Aqu se han


usado constantes, pero podemos operar con campos y variables globales,
adems de otras funciones.
Expresiones condicionales:

06
4>2

condicin cierta.

4 < (2+2)

condicin falsa.

4 = (2+2)

condicin cierta.

4!3

condicin cierta

Asistentes

Expresiones booleanas (lgicas):


(4 > 1) & (4 = 5)
En el ejemplo anterior, la primera condicin (4>1) es cierta, pero la segunda
(4=5) no lo es. El operador & es verdadero si sus condiciones (izquierda y
derecha) tambin lo son, por lo tanto, la condicin en su conjunto es falsa.
(4 > 1) | (4 = 5)
En el ejemplo anterior la primera condicin (4>1) es cierta pero la segunda
(4=5) no lo es. El operador | () es verdadero si una de sus condiciones (izquierda y derecha) lo es, por lo tanto, la condicin en su conjunto es cierta.
Expresiones unarias
- X: la expresin devuelve el valor negativo de la variable X.
!X: indica NO X. Se trata de la negacin de la variable X. Si posea algn valor, lo evala como cero, mientras que si posea el valor 0, lo evala como 1.
Es recomendable el uso de los parntesis en las expresiones de frmulas,
sobre todo cuando no se conoce la forma de evaluacin de los operadores,
ya que fuerzan a realizar primero las operaciones incluidas en ellos.

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

VENTANA ASISTENTE DE FUNCIONES

El cuadro Ayuda del Asistente de funciones indica cmo trabaja la funcin,


en Sintaxis vemos cul es la sintaxis para esa funcin en particular y en Parmetros aparecen los parmetros que lleva la funcin. Para introducir esos
parmetros podemos recurrir de nuevo al Asistente (botones a la derecha
de los controles de edicin correspondientes a parmetros).
Velzquez Visual presenta los siguientes tipos de funciones:
Numricas: funciones que trabajan sobre datos numricos, como Absoluto
(devuelve el valor absoluto de un nmero) o Redondear (devuelve el nmero entero o decimal ms prximo al valor).
Funciones de cadenas y de conversin de cadenas: trabajan sobre cadenas
de caracteres, como es el caso de la funcin Len (devuelve el nmero de
caracteres de una expresin) o la funcin Maysculas (convierte una funcin
alfabtica a maysculas).
Funciones de fecha: trabajan sobre datos con carcter de fecha, como la
funcin Edad (devuelve la diferencia en aos entre dos fechas).
Funciones de hora: trabajan con datos de carcter hora, por ejemplo la funcin Ahora (que devuelve la hora del sistema).
Funciones Varias: aqu se incluyen funciones de diverso tipo, como puede
ser DecidirDato (elige un dato de acuerdo con una condicin), o CampoVaco (devuelve 1 si el campo que se le pasa como parmetro est vaco y 0
si no lo est).
Funciones de cliente-servidor: especficas para la ejecucin de aplicaciones en arquitectura cliente-servidor. Por ejemplo GetWebAplicacin (de-

06

Asistentes

vuelve la url correspondiente a la aplicacin que se est ejecutando en ese


momento).
Funciones de cdigos: trabajan sobre cdigos que les pasamos como parmetros. Un ejemplo es EsEan13, que devuelve 1 si el cdigo es un EAN13
y 0 en caso contrario.
Funciones de juegos de caracteres: devuelven los cdigos o caracteres correspondientes a los parmetros que se le haya pasado, por ejemplo GetCharAlfa40 (devuelve el carcter correspondiente al nmero que se le haya
pasado como parmetro en la tabla de caracteres Alfa40).
Funciones de directorios: realizan operaciones sobre directorios y ficheros,
como la funcin AjustaSenda (convierte una senda para que sea interpretada correctamente).
Funciones cientficas: incluyen las funciones cientficas clsicas, como ArcoSeno (devuelve el arcoseno del argumento).
Funciones Api de Velzquez: devuelven informacin acerca de aplicaciones
de Velzquez. Un ejemplo es GetProyectoNombre (devuelve el nombre de
un proyecto de Velzquez).

Las funciones de dll


Si en el proyecto se ha creado algn objeto dll con funciones, stas podrn
ser seleccionadas pulsando el botn
funciones de dll de la barra de botones del asistente. Aparecer el Asistente de funciones de dll.

Funciones de dll
Funciones proceso

ASISTENTE DE FUNCIONES DE DLL

Las funciones proceso


Si en el proyecto hemos creado alguna funcin, sta podr ser seleccionada pulsando el botn funciones proceso
de la barra de botones del
asistente. Obtendremos la ventana del Asistente de funciones proceso.

412 413

VELAZQUEZ VISUAL

ASISTENTE DE FUNCIONES PROCESO (OBJETO 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.

Uso de los campos


Para incluir manualmente en una frmula un campo de la tabla de datos en
curso hemos de escribir en maysculas el identificador del campo, precedido y seguido de un smbolo %. Por ejemplo, para calcular el 16 por ciento del campo Precio que tiene por identificador PRECIO, escribimos en la
frmula el texto siguiente: (%PRECIO% * 16) / 100.

Es posible usar campos de una tabla de datos enlazada ascendentemente


con la primera. En este ejemplo se han usado dos operadores; el operador
(*) para la multiplicacin y el operador (/) para la divisin.
Veamos otro ejemplo: para obtener el valor del campo Nombre de la provincia de la poblacin del cliente del albarn en curso, escribimos en la frmula el texto siguiente:

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.

6.1.2. Operaciones avanzadas


Acceso a campos de otra tabla de datos
En un proceso, para obtener un campo de un registro de una tabla de datos que no est en curso ni est enlazada, habiendo guardado anteriormente el registro en el proceso con la funcin Guardar ficha, se utiliza la siguiente sintaxis:
:ID_VAR%CAMPO%
Como prefijo se introduce : (dos puntos), a continuacin el identificador de
la variable en la que se ha guardado la ficha con la funcin Guardar ficha, y
entre tantos por ciento, el campo de donde se quiere obtener el dato.
De este modo tambin podemos acceder a los campos de las tablas enlazadas a la tabla a la que pertenece la ficha que hemos guardado en el proceso con la funcin Guardar ficha. Por ejemplo, supongamos las tablas enlazadas PAISES y PROVINCIAS. En un proceso guardamos un registro de la

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.

Uso de las variables globales

Variables globales

Para introducir manualmente variables globales que estn declaradas en el


proyecto hemos de escribir su identificador entre dos smbolos $. Tambin
podemos introducirlas haciendo uso de la Lista de Variables: Globales que
aparece cuando pulsamos el botn
variables globales del asistente para edicin de frmulas.

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

VENTANA LISTA DE VARIABLES GLOBALES

Uso de las variables locales


Para introducir manualmente variables locales escribimos su identificador
entre dos apstrofes (). Tambin podemos acceder a ellas mediante el botn
variables locales (F7).
Los mbitos ms corrientes de las variables locales son los procesos y los informes, aunque tambin se usan en componentes html, pies de rejilla... Al terminar se destruyen, y su uso no es posible desde fuera del proceso o informe.

06

Asistentes

No es necesario declarar el tipo de las variables locales ya que ste ser el


de su contenido. Por ejemplo, una misma variable puede ser en un momento dado alfabtica y luego numrica.

Uso de las variables de sistema


Para introducir manualmente variables de sistema escribimos el identificador de la variable en minsculas, sin prefijos ni sufijos, o hacemos clic en el
botn
variables de sistema, obteniendo en este caso la ventana Lista de
Variables: Sistema en la que se da un listado de todas las variables de sistema.

VENTANA LISTA DE VARIABLES: SISTEMA

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

VENTANA DE EDICIN PARA LA FUNCIN DE PROCESOS MENSAJE

Queremos incluir el mensaje El precio del libro es PVP, donde PVP es el


precio, guardado en el campo P.V.P. En el control de edicin Mensaje escribimos El precio del libro es y pulsamos el botn Asistente, apareciendo el
asistente para edicin de frmulas. En l pulsamos el botn Campos y elegimos el campo P.V.P. En esta ltima ventana (Seleccione campo de:) es
donde damos formato al campo (controles Justificar y longitud).

06

Al final obtendremos la siguiente ventana de lnea de proceso:

Asistentes

418 419

VELAZQUEZ VISUAL

Conversin automtica de datos


Cuando pasamos datos de un tipo a otro, Velzquez realiza una conversin
automtica de los mismos. As tenemos:
Dato numrico en una cadena de texto: cuando en una expresin de texto utilizamos un dato numrico, ste se toma con el signo y con los decimales. Por ejemplo, el nmero -26.125,55 al incluirlo en una frmula de
texto se convertir a -26125.55. Cuando en una frmula intervienen datos numricos y el operador +, la operacin a realizar (suma o concatenacin) depender del primero de los valores especificados. Si es un nmero, se tomar como una suma, si es una cadena, como una concatenacin. Por ejemplo, si en un campo o variable de tipo alfabtico se escribe la frmula: 1+1, puesto que el primer dato es numrico, se tomar
como una suma, por lo que se devolver 2. Si lo que queremos es concatenar ambas cifras, para indicar que se trata de una concatenacin
basta con que al principio de la expresin se escriba (comillas - comillas) con lo que la frmula sera +1+1, lo que devolvera 11. En ambos casos el resultado es una cadena de texto, aunque en el primer caso se devuelve como cadena la suma de ambas cifras y en el segundo
la concatenacin de las mismas.
Fecha en una cadena de texto: cuando en una cadena de texto incluimos
un dato de tipo fecha, lo devuelve en formato de da-nombre del mes
abreviado-ao completo. Por ejemplo, 12/12/1998 es incluido en la cadena de texto como 12-dic-1998.

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.

Secuencias de escape en cadenas de caracteres


Para introducir en el interior de una cadena de caracteres algunos caracteres especiales imposibles de representar mediante texto, utilizamos lo que
comnmente se denominan secuencias de escape. Todas ellas comienzan
con una barra invertida seguida de otro carcter. Las secuencias de escape se sustituyen en tiempo de ejecucin por los caracteres adecuados. stas son las secuencias de escape aceptadas:
\a

Campana: es el pitido del sistema.

\b

Retroceso: produce el mismo efecto que pulsar la tecla de Retroceso


destructivo.

\c

Comilla: provoca la introduccin de una comilla.

\f

Salto de pgina: provoca el salto de una pgina.

\n

Nueva lnea: provoca el salto a la lnea siguiente.

\r

Retorno de carro: provoca el retroceso al comienzo de la lnea.

\t

Tabulador: produce el mismo efecto que pulsar la tecla del Tabulador.

\v

Tabulador Vertical.

\\

Barra invertida.

Las secuencias de escape \r y \n pueden ser utilizadas en textos estticos


multilneas (mens, formularios, etc.).

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

3. Supongamos una aplicacin con tres tablas: CLIENTES, ARTCULOS y


LNEAS DE VENTA. En la tabla CLIENTES hemos incluido el campo
Descuento, que guarda el descuento a aplicar segn el cliente. La tabla
ARTCULOS contiene el campo Precio, y adems hemos incluido en el
proyecto la variable global IVA. En la tabla LNEAS DE VENTA hemos
aadido el campo Total (lo que finalmente debe pagar el cliente). Queremos que el contenido del campo Total sea el precio del artculo menos el descuento por cliente, sin olvidarnos de aplicar el IVA. Escribir el
contenido inicial del campo Total usando las funciones del asistente.

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

Uso de las cadenas de formato

Las cadenas de formato pueden usarse en ciertos controles, y sirven para


concatenar textos y campos sin utilizar operadores aritmticos, formateando
la visualizacin de la informacin. Los controles donde se pueden usar son:
Rejillas: cuando se activa la casilla de verificacin Manual en las propiedades de cuerpo (ventana Columna de rejilla).
Tubos de ficha y tubos de lista: en los Capilares de campos alfabticos.
Formularios: cuando se activa la casilla de verificacin Manual en los
controles de edicin de campo.
En la especificacin del texto en controles de casilla de verificacin de
formularios y mens formulario.
En la especificacin del texto y del dato fijo en controles de botones de
radio de formularios y mens formulario.

6.2.1. Sintaxis de las cadenas de formato


En las cadenas de formato todos los caracteres que no estn posicionados
entre tantos por ciento son interpretados como texto a concatenar. Los
identificadores de los campos se escriben como en las frmulas, es decir,
entre tantos por ciento. Por ejemplo:
Tel.: %CLIENTE.TELEFONO% Fax: %CLIENTE.FAX%
Da como resultado la cadena siguiente: Tel.: TTT Fax: FFF, donde TTT sera
el telfono del cliente y FFF el fax del cliente. Advirtamos que no se utiliza
el operador +. El equivalente a una expresin frmula sera:

Asistentes

422 423

VELAZQUEZ VISUAL

Tel.: +%CLIENTE.TELEFONO%+ Fax:+%CLIENTE.FAX%.

6.2.2. El asistente para la edicin de cadenas


6.2.2. de formato
El asistente de cadenas de formato est presente en todos los controles de
edicin donde est permitido emplear cadenas de formato. Al pulsar el botn Asistente visualizaremos la ventana del asistente.

ASISTENTE PARA EDICIN DE CADENAS DE FORMATO

Principalmente se compone de un cuadro de edicin donde se escribe la


expresin de la cadena de formato. En este rea el asistente insertar identificadores de campo, de variables globales, etc. Los botones Operadores y
Funciones no estn activos, pues para las cadenas de formato no se pueden utilizar ni los operadores ni las funciones de frmulas.
Los botones de la barra del asistente permiten acceder a una lista de:
Campos

Campos (F5).

Variables Globales

Variables Globales (F6).

Variables Locales

Variables Locales (F7).

Variables del Sistema


Cortar, Copiar y
Pegar

Variables del Sistema (F8).


Cortar (Control + X), Copiar (Control + C) y Pegar (Control + V).

Deshacer

Deshacer (Control + Z).

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 (Intro): guarda los cambios realizados en la frmula.

Aceptar

Cancelar (Esc): cancela los cambios llevados a cabo en la frmula.

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.

6.2.3. Subcadenas de formato


Mediante las subcadenas de formato ajustamos la visualizacin de la informacin. Para ello disponemos de unos formateadores que son utilizados
conjuntamente con el identificador del campo, precedidos del smbolo # (Alt
Gr + 3). La sintaxis es la siguiente:
%ID_CAMPO#F%
ID_CAMPO: es el identificador del campo.
F: es el formateador.
Para crear una subcadena de formato tenemos dos opciones: escribirla directamente o a travs de la opcin correspondiente que aparece al seleccionar un
campo, tanto en el asistente para la edicin de frmulas como en el asistente para la edicin de cadenas de formato. En funcin del tipo de campo seleccionado se presentarn las opciones de subcadenas de formato que correspondan.
Cuando se hace a travs de la opcin del asistente, al ir seleccionando las
distintas subcadenas de formato, Velzquez ir componiendo la frmula
que corresponda.
En el anexo I del manual encontraremos una relacin de los formateadores
con los que podemos trabajar en Velzquez Visual.

Ejemplo: Subcadenas de formato


Queremos visualizar en un formulario el campo CODIGO (numrico), con una
longitud de 8 caracteres, alineado a la derecha y rellenando con ceros por la
izquierda (ej.: 00000158). Para ello habr que seguir los pasos siguientes:

424 425

VELAZQUEZ VISUAL

e Insertamos un control de edicin de campo en el formulario.


En las propiedades de dicho control de edicin seleccionamos la opcin
Manual.

Pulsamos el botn Asistente para abrir el asistente de creacin de cadenas


de formato.

Campos

Una vez abierto, pulsamos el botn Campos


ra acceder a la lista de campos.

de la barra de botones pa-

Seleccionamos el campo %CODIGO%. En la parte inferior de la ventana se


presentan las distintas opciones para formatear campos numricos.

06

Asistentes
e

En Justificar seleccionamos la opcin Derecha con ceros a la izquierda.


En Longitud escribimos 8.

426 427

VELAZQUEZ VISUAL

Al aceptar, la frmula se habr convertido en %CODIGO#C8%.

Con esto, el campo cdigo aparecer en el formulario con el formato que


requeramos.

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.

PANEL DE VARIABLES DEL EDITOR

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

VENTANA PROPIEDADES DE LA VARIABLE GLOBAL

En el cuadro definimos las siguientes propiedades:


Nombre: nombre que le damos a la variable.
Persistencia: caja con las opciones para guardarla en disco o en memoria. Tambin se encuentra aqu la casilla de verificacin Grupo de usuarios. Si activamos esta casilla de verificacin, en tiempo de ejecucin podremos establecer un valor diferente a la misma para cada grupo de
usuarios definido.
Accesible Web: hemos de activar este estilo si deseamos utilizar una variable global en una pgina web para pasar parmetros a un proyecto del
servidor. El estilo Accesible web, por cuestiones de seguridad, se activar solamente en aquellas variables globales que se desee sean accesibles va web, es decir, que puedan ser utilizadas desde una pgina web
en la pasarela cgi.
Longitud: nmero de bytes para la variable. Como mximo podemos especificar seis bytes.
Decimales: nmero de decimales para la variable.
Signo: casilla de verificacin que define si la variable tiene signo.
Rango: lmites vlidos de entrada de valores para el usuario.
Caracteres vlidos: son los caracteres vlidos que puede contener una
variable tipo alfa.

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.

7.1.2. Tipos de variables globales (en memoria y en


disco)
Los tipos de persistencia de las variables son:
En disco: el valor de la variable ser comn para todos los usuarios de la
aplicacin; si un usuario modifica su valor, este cambio afectar al resto de
los usuarios. Si se activa la opcin Por grupos de usuarios, el valor de la variable ser comn para todos los usuarios de un mismo grupo; por tanto,
tendr un valor diferente por cada grupo de usuarios que haya sido definido. Se guardar en la aplicacin su valor aun cuando salgamos de sta. Pese a ser en disco, por ejemplo en el caso de cliente-servidor, eso no quiere
decir que est continuamente llamando al servidor para pedir el valor, sino
que ste se encargar de refrescar el valor cuando algn usuario lo cambia.
En memoria (independiente cada tarea en 2 plano) y En memoria (compartida por todas las tareas): el valor de la variable tiene carcter local, es decir, si un usuario modifica su valor, el cambio solamente le afectar a l. El
comportamiento de estos dos tipos de variables en memoria es el mismo
tratndose de procesos en primer plano. La diferencia radica en su comportamiento en procesos ejecutados en multitarea (en 2 plano). Por ejemplo, si se ejecutan dos tareas en 2 plano en las que se modifica el valor de
la misma variable global, si sta es del tipo 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. Por el contrario, si la variable es del tipo 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.
A pesar del carcter local de las variables globales en memoria, en la versin
cliente-servidor de Velzquez Visual es posible utilizarlas en cualquier punto
(eventos de tablas, frmulas, etc.), pues en esta arquitectura se contempla un
sistema de replicacin entre cliente y el servidor para este tipo de variables.
Un ejemplo de conflicto en aplicaciones multiempresa es el siguiente: una
aplicacin guardaba en una variable el cdigo de la empresa seleccionada.
El funcionamiento era correcto hasta que dos usuarios del mismo grupo accedan a empresas distintas. Entonces, la seleccin del ltimo afectaba al
primero. Con las variables en memoria cada usuario podra guardar el valor
de su empresa seleccionada en memoria y no entrara en conflicto con otros
usuarios de su grupo de trabajo.
Las variables globales pueden ser usadas en cualquier rejilla, formulario o
informe, incluso en expresiones frmula para realizar clculos con ellas.

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

7.2.1. Definicin y propiedades


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.
Accedemos a ellas a travs del asistente para edicin de frmulas. Pinchando en el botn variables de sistema (F8)
obtendremos el cuadro de
dilogo Lista de variables: Sistema, en el que podremos elegir la que necesitemos.

07

VARIABLES DE SISTEMA

Dependiendo del lugar en el que estemos utilizando el editor de frmulas,


unas estarn disponibles y otras no. Por ejemplo, si estamos en una lnea
de proceso cuyo origen es una ficha, no estarn disponibles en el editor las
variables del sistema referentes a listas (n, s y m).

7.2.2. Variables de sistema de Velzquez Visual


Para introducir manualmente variables de sistema hemos de escribir el
identificador de la variable en minsculas, sin prefijos ni sufijos. A continuacin veremos las variables de sistema de Velzquez Visual y su utilizacin con varios ejemplos. En estos ejemplos las variables aparecen en procesos, que todava no han sido introducidos. De todos modos las sentencias de los procesos que vamos a ver son muy sencillas y no nos plantearn problemas.
n (nmero de elementos de la lista): esta variable devuelve el nmero de elementos de una lista. Por ejemplo, se puede usar para comprobar en un proceso si una lista que se ha cargado tiene o no registros. La sintaxis sera if
n > 0. Si es mayor que 0 quiere decir que tiene algn registro, en el caso
contrario no hay registros.
u (nombre del usuario actual): esta variable devuelve el nombre del usuario
actual.

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

Estas variables son usadas en procesos, de modo que mediante la funcin


set podemos declararlas y asignarles valores calculados por una expresin
frmula. Si la variable local no existe, sta es creada automticamente. Por
ejemplo, en una lnea de proceso podemos asignar a la variable local posicin un campo Cdigo.

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.

You might also like