Vous êtes sur la page 1sur 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 ............................................................................................................ 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 .......... 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..................................................... 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 ..........................................................................

15 17 19 21 23 23 23 23 24 27 29 30 32 34 35 39 39 41 42 43 44 45 47 49 51 51 51 53 53 54 55 60 61 61 61 96 108 108 110 134 190 208 272 277 277 287

10 11

VELAZQUEZ VISUAL

4.6.

4.5.3. AGENDA 4.6.1. 4.6.2. 4.6.3.

DE

Transacciones ............................................................................................. TAREAS ..................................................................................................... Exposicin del problema ............................................................................ Esquema de Tablas..................................................................................... Objetos Visuales .........................................................................................

290 292 292 294 320 391 393 394 397 398 399 400 401 402 405 407 408 413 421 421 422 423 427 429 431 431 433 434 434 435 437

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

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 ............................................................................ 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........................... 10. INSTALACIN DE APLICACIONES ................................................................................. 10.1. VERSIN DE VELZQUEZ VISUAL BASADA EN SERVIDOR DE DISCO (MONOPUESTO) ................

189 205 207 253 256 258 279 287 288 289 404 406 419 424 431 433 433 435 436 437 437 439 439 440 442 443 444 448 448 449 452 453 454 454 459 462 471 473 476 478 479 480 480 483 485

Indice

10.2. VERSIN CLIENTE-SERVIDOR DE VELZQUEZ VISUAL ......................................................... 10.3. CREACIN DE APLICACIONES PARA EJECUTAR DESDE CD-ROM ......................................... 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 ........................

486 487 489 492 493 495 495 496 497 497 498 499 500 500 502 503 504 505 506 507 507 508 508 510 513 514 516 519 527 532 534 534 536 537 538 543 544 547 547 548 549 560 563 563 564 564 566 567

14 15

VELAZQUEZ VISUAL

11.14.6. Efectos negativos no deseados ................................................................ 11.15. INCORPORACIN DE UN MANUAL DE AYUDA PROPIO PARA UNA APLICACIN........................... 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........................................................ 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 ....................................................................... ANEXO I: FORMATEADORES DE VELZQUEZ VISUAL....................................................... ALFABTICOS ......................................................................................................................... NUMRICOS ........................................................................................................................... DE FECHAS ............................................................................................................................ DE HORAS ............................................................................................................................. ANEXO II: FUNCIONES DEL ASISTENTE DE EDICIN DE FRMULAS ANEXO II: DE VELZQUEZ VISUAL ....................................................................................... ANEXO III: PALETA DE COLORES..........................................................................................

572 575 577 579 580 580 581 583 584 586 586 587 589 589 591 592 593 609 611 612 615 617 619 619 619 620

623 641

01
Introduccin

01
1.1
Nacimiento y evolucin de Velzquez Visual
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.

Introduccin

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.

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.

Instalacin de Velzquez Visual

2.2
Pentium

Requisitos mnimos

Velzquez Visual requiere un ordenador que cumpla, como mnimo, las siguientes caractersticas de hardware:

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.

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
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:

Interfaz del Editor de Proyectos

Archivo/Nuevo

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.

30 31

VELAZQUEZ VISUAL

Imprimir Nuevo Abrir Cerrar Guardar Guardar aplicacin Imprimir Presentacin preliminar Enviar Deshacer Rehacer Cortar Copiar Pegar Propiedades proyecto Tareas pendientes Fuentes por defecto Estilos de Usuarios Inspector de tablas y campos

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 .

3.1.1. Barra de Mens


En la Barra de Mens encontraremos las siguientes opciones: En la Barra de Mens encontraremos las siguientes opciones:

Archivo
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). 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). Al igual que en el resto del men, tenemos la posibilidad de abrirlo y ejecutar los comandos con ayuda de la tecla ALT y la letra subrayada en cada uno de los comandos.

Edicin
En el men Edicin tenemos las opciones habituales de deshacer y rehacer ( Deshacer, Ctrl+Z, Rehacer), cortar, copiar y pegar ( Cortar, Ctrl+X, 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). El ltimo comando es muy interesante, ya que buscar y localizar aquellos errores que pueda tener el proyecto ( Errores del proyecto).

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 Inspector contenido frmulas Inspector errores del proyecto Editar Propiedades Cambiar identificador

Objetos
En este men encontramos opciones para editar los objetos, tanto visuales como tablas, etc. ( Editar... Intro). Tambin podemos ver las propiedades de esos objetos ( Propiedades... Alt+Intro) o cambiar su identificador ( Cambiar identificador F2). 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). 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).

Nuevo/Objeto Almacn de objetos Suprimir Supr Crear campos fecha/hora Crear campos dimensiones dibujo

Campos
El men Campos nos permite crear un campo que controle la fecha y hora del alta, baja, o modificacin de un campo objeto ( Crear campos fecha/hora campo objeto), as como un campo que almacene las dimensiones de un dibujo introducido en un campo tipo objeto dibujo ( Crear campos dimensiones dibujo). Tambin tenemos asistentes para crear los diversos tipos de punteros que hay en Velzquez Visual (ms adelante los veremos con detalle).

Comunes
El men Comunes contiene opciones para Localizar y Convertir objetos. Podemos localizar los siguientes objetos: Icono de Usuarios, Imagen de Splash, Proceso de Inicio, Men Inicial, Men de Cierre de Aplicacin y Pgina Html Principal. Mientras que es posible convertir el objeto seleccionado, dependiendo del tipo, en uno de los anteriores.

Ver
El men Ver contiene las opciones siguientes: Barra de herramientas: para ver o dejar de ver la barra de herramientas. Tambin es posible esconder/ver una barra de herramientas a travs del men de contexto de las mismas, pulsando el botn derecho del ratn so-

32 33

VELAZQUEZ VISUAL

bre el rea de la barra. Activando o desactivando el check box que se encuentra junto al nombre de cada barra de herramientas, sta estar o no estar visible. Otras opciones del men Ver son: Barra de estado, para ver o dejar de ver la barra de estado de Velzquez Visual, situada en la parte inferior de la pantalla. Personalizar, dar acceso a la ventana para personalizar tanto la barra de herramientas como el entorno de trabajo. Pantalla completa (F11), visualiza u oculta la barra de mens y la barra de estado del Editor y Senda completa: permite visualizar/ocultar en el ttulo de la ventana del Editor la senda completa del proyecto actual.

Ventana
El men Ventana contiene las opciones habituales de Windows: Cascada, Mosaico Horizontal, Mosaico Vertical y Arreglar Iconos, ms otras propias que son: Organizador, cada ventana abierta ser presentada dentro de una pestaa, por lo que para moverse de una a otra bastar con pulsar con el ratn sobre la pestaa deseada. Esquema de tablas, permite acceder a la pantalla de creacin de esquemas, donde podremos crear de forma grfica las estructuras de informacin de la aplicacin. Panel siguiente, presentar el siguiente panel abierto y Panel anterior presentar el panel anterior abierto. Tambin se presenta una lista de los mapas abiertos en el Editor al mismo tiempo, pudiendo seleccionar cul de ellos quiere abrirse y mostrando cul es el actual.

? (Ayuda)
En el men Ayuda encontraremos las opciones Ayuda de Velzquez y Acerca de EDMAP.

3.1.2. Barra de herramientas


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

Nuevo proyecto Abrir proyecto Guardar proyecto Guardar aplicacin

03
el Servidor de Aplicaciones). Un archivo guardado en este modo ocupa menos espacio en disco que un archivo .MAP. Dadas sus caractersticas ser el archivo ms apropiado para suministrar a sus clientes. Ejecutar proyecto: para ver la ejecucin del proyecto. Propiedades proyecto: para definir o modificar las caractersticas del proyecto (protecciones, usuarios, etc.). Paneles: para volver a los paneles del Editor est donde est. Esquema: para acceder a la pantalla de esquemas en la que podr crearse la estructura de tablas de forma visual. Los tres siguientes son: y a continuacin Cortar, Copiar y Pegar (respectivamente)

Interfaz del Editor de Proyectos

Ejecutar proyecto Propiedades proyecto Paneles Esquema Cortar Copiar Pegar 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. 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. Suprimir objeto: para eliminar un objeto del proyecto.

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 Almacn de objetos Propiedades 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. 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.

Nueva carpeta Nuevo campo Nuevo ndice Nuevo enlace histrico Nueva actualizacin Nuevo evento de tabla Imprimir Previsualizar Organizador

34 35

VELAZQUEZ VISUAL

Lanza el manual en lnea del editor de proyectos Cerrar carpeta superior Abrir carpeta completa Cerrar carpeta completa Cerrar completo Dnde se usa Suprimir Cambiar Identificador

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.

3.1.3. Mens de contexto


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.

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). Dnde se usa, F9), suprimirAdems veremos dnde se usa un objeto ( lo ( 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).

Interfaz del Editor de Proyectos

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

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

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.

Esquema de Tablas

VENTANA ESQUEMA DE TABLAS CON EL ASISTENTE DE CREACIN 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

Interfaz del Editor de Proyectos

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.

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
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:

Interfaz del Editor de Proyectos

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 Propiedades de la tabla Objetos de la tabla Panel izquierdo

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

40 41

VELAZQUEZ VISUAL

Nueva tabla maestra Nueva tabla submaestra

Nueva tabla maestra: para crear una tabla de tipo maestro normal con clave numrica. 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. 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.

Interfaz del Editor de Proyectos


Ver punteros abuelos de submaestros Ver punteros indirectos 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

3.2.3. Mens de Contexto


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.

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

ESQUEMA DE TABLAS

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

Interfaz del Editor de Proyectos

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.

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.

Examinar

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

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.

Interfaz 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:

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.

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin e


Aadir Propiedades del proyecto

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

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

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

Desarrollo bsico de una aplicacin

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

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.

Desarrollo bsico de una aplicacin

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

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 Al ndice cdigo no hemos de aadirle componentes, cambiar su tipo, etc.

Longitud-Rango: indicamos cuntos registros, como mximo, soportar la tabla (255, 65535, 16,7 millones o 4.000 millones de registros). Regin de Datos de la descripcin: aqu especificaremos los datos correspondientes al campo NOMBRE.

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

Desarrollo bsico de una aplicacin

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. 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.
Aadir campo Crear nuevo campo enlazado Nuevo ndice

64 65

VELAZQUEZ VISUAL

Nuevo ndice del campo Nuevo enlace histrico Nueva actualizacin Nuevo evento Suprimir Subir y Bajar Editar Cambiar identificador Cortar, Copiar y Pegar Salir Propiedades de tabla

Nuevo ndice del campo: crea un nuevo ndice a partir del campo seleccionado. Nuevo enlace histrico: crea un enlace histrico en la carpeta de histricos a una tabla, por el ndice que escojamos. El ndice usado siempre debe tener como primer componente el campo enlazado a esta tabla maestra. Nueva actualizacin: crearemos una nueva actualizacin desde la tabla que estamos editando. 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. 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.

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.

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

Desarrollo bsico de una aplicacin

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.

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 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
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:

Desarrollo bsico de una aplicacin

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

Numrico Alfa 128 Alfa 64 Alfa 40 Fecha Hora Tiempo

72 73

VELAZQUEZ VISUAL

Booleano Texto Dibujo Texto enriquecido OLE genrico E-mail Frmula numrica Frmula alfabtica Frmula fecha Frmula tiempo Frmula histrico

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: 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. 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. 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
Esta opcin es muy til para ganar velocidad en la presentacin de imgenes en pginas web servidas por el Servidor http de Velzquez Visual.

Desarrollo bsico de una aplicacin

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

VELAZQUEZ VISUAL

Aadir

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.

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

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

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
PLANTILLAS DE CAMPO

Desarrollo bsico de una aplicacin

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. Otro detalle: las plantillas son exclusivas del mapa donde se hayan creado.

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

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.

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

Nuevo ndice

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

Desarrollo bsico de una aplicacin

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.

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

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.

Desarrollo bsico de una aplicacin e


Nuevo proyecto Esquema de Tablas

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

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.

Desarrollo bsico de una aplicacin e

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

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

Desarrollo bsico de una aplicacin

enlazador

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.

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

Desarrollo bsico de una aplicacin

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

Desarrollo bsico de una aplicacin e

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

Desarrollo bsico de una aplicacin

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

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.

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

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

Desarrollo bsico de una aplicacin

Nuevo objeto

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.

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

TRUCO Para diferenciar fcilmente las filas pares de las impares podemos darles un color de fondo distinto. Si queremos visualizar una rejilla con una nica fila que ocupe todo el alto de la ventana donde se vaya a visualizar, le damos a la fila un alto superior al alto mximo que va a tener la ventana. En tiempo de ejecucin, se reducir automticamente hasta ocupar, slo una fila, todo el alto de la ventana. Por ejemplo, podemos utilizar una rejilla para visualizar un nico registro en un men.

ADVERTENCIA La opcin Doble clic implica que no se va a presentar el formulario de modificacin al hacer doble clic. En este caso, para obtenerlo habr que abrir el men de contexto que se presenta al pulsar el botn derecho del ratn.

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

Desarrollo bsico de una aplicacin

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

Expandir rama

Cuestiones
1. Cada ficha que aparece en una rejilla, se dispone en las filas o en las columnas? Y los campos de cada ficha? 2. En el editor de proyectos, abrir un nuevo proyecto y crear la tabla MONTAAS (maestro normal con clave numrica). En ella aadimos los campos Altura, Localizacin, Primer ascensionista, N de xitos e ndice de peligrosidad. Crear una rejilla asociada a la tabla, de modo que podamos seleccionar ms de una montaa a la vez. La rejilla slo debe presentar los campos Nombre y Altura. 3. Crear otra rejilla asociada a la tabla MONTAAS, pero en este caso que presente todos los campos de la tabla MONTAAS y con la posibilidad de modificar sus registros en tiempo de ejecucin (Nota: cuando aceptemos, se presentar la ventana de edicin de rejillas, que vamos a ver a continuacin. De todos modos ya sabemos lo suficiente para practicar con las cuestiones propuestas).

04
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 Asistente. boton Para ver las propiedades de la rejilla pulsamos el botn jeto. Propiedades ob-

Desarrollo bsico de una aplicacin

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

Nueva columna Vuelve a funcin Modificar Propiedades de columna Insertar columna Duplicar columna Eliminar columna Mover columna a la izquierda Mover columna a la derecha Aumentar ancho Reducir ancho Copiar y pegar condiciones colores - fuentes

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

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:

Desarrollo bsico de una aplicacin

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.

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.

Desarrollo bsico de una aplicacin

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.

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:

Desarrollo bsico de una aplicacin

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

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

Desarrollo bsico de una aplicacin

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

124 125

VELAZQUEZ VISUAL

Ancho del Ttulo Ancho del contenido Coloreado rpido

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:


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.

Nueva carpeta Nuevo objeto Nuevo objeto del tipo seleccionado

04
Si pulsamos directamente el botn Aceptar, Velzquez Visual crea el objeto rejilla Tareas dentro de la carpeta Tareas. 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.

Desarrollo bsico de una aplicacin e

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.

Desarrollo bsico de una aplicacin e

Ahora hacemos doble clic sobre la cabecera del campo Descripcin tarea, abrimos la ventana de Propiedades de la columna, seleccionamos la pes-

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 >>.
COLUMNAS DE ANCHO VARIABLE

Desarrollo bsico de una aplicacin e

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.

Coloreado rpido

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-

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.

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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.

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. Tambin contamos con los botones subir y bajar den de las fuentes en el formulario. , para cambiar el orAadir Sustituir Eliminar Eliminar sin uso Subir y bajar Modo de edicin Caja de grupo

Cuestiones
1. Tenemos un proyecto que incluye una tabla llamada PASES. Asociar un formulario a dicha tabla, llamndolo pases, de tal modo que aparezca en cuadro de dilogo y en el que se use la fuente Arial 10 negrita.

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

VELAZQUEZ VISUAL

Separador esttico Anuncio Dibujo esttico Texto esttico Nombre campo Campo

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

Desarrollo bsico de una aplicacin

Microscroll Calendario

TRUCO La edicin de variables entre lmites es muy til para poder almacenar los rangos de fecha de bsquedas entre lmites, para poder ser utilizados con posterioridad en procesos, informes, etc.

142 143

VELAZQUEZ VISUAL

Fecha/Hora Botn con texto

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:

Desarrollo bsico de una aplicacin

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.

144 145

VELAZQUEZ VISUAL

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.

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-

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.

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

TRUCO Si en un formulario queremos incluir un botn que guarde cambios pero que no cierre la ficha, le asignamos la funcin Ejecutar proceso ficha actual y no seleccionamos proceso alguno, o seleccionamos uno que no haga nada. Activamos la propiedad Refresca cambios en ficha y ya tenemos el efecto deseado.

04
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: 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

Desarrollo bsico de una aplicacin

Botn con dibujo Botn men

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 RadioButton

Url: este control permite disparar la url que se especifique en uno de sus parmetros. Sus parmetros generales son: 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
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: Campo: seleccionamos esta opcin para asociar un campo al control.

Desarrollo bsico de una aplicacin

Check Box Rama de rbol 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 Rejilla histrico

Combo Box (Lista desplegable): permite ver los registros contenidos en el control a travs de una lista desplegable. Sus parmetros generales son: 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
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

Desarrollo bsico de una aplicacin

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

VELAZQUEZ VISUAL

Desplazar separadores Grfico

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

Desarrollo bsico de una aplicacin

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 E-mail

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

Desarrollo bsico de una aplicacin

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

TRUCO En modificacin, si queremos guardar la ficha actual pero que sta permanezca en pantalla, actuaremos del siguiente modo: si el formulario es a pantalla completa aadimos un botn (por ejemplo, con el texto Guardar) que dispare la funcin Aceptar sin cerrar formulario. Si el formulario es en modo cuadro de dilogo, aadiremos un botn con la funcin Ejecutar proceso ficha actual, sin asociar proceso alguno o indicndole que dispare un proceso creado anteriormente y que no haga nada. Tambin marcaremos la casilla Refrescar cambios ficha de la pestaa Estilos. Si estamos dando altas, un botn con la funcin Aceptar sin cerrar formulario har que ste permanezca en pantalla, pudiendo dar de alta la ficha siguiente.

166 167

VELAZQUEZ VISUAL

datos maestra. Para incrustar un botn en un control de edicin ambos deben estar seguidos en el orden de tabulador y tener activada la propiedad Men desplegable (en la pestaa Aspecto). La subindexacin especial: utilizada cuando se desee realizar una bsqueda ms selectiva de un registro maestro que a su vez sea submaestro de otra tabla. Invertir lista: slo para controles tipo rejilla de histrico, rejilla de subhistrico y rejilla alimentada por proceso. Activada esta opcin, en tiempo de ejecucin se visualizarn los registros de las rejillas en orden inverso. Muy til, por ejemplo, para visualizar una lista de facturas de un cliente, pues en primer lugar tendr la ltima que se ha dado de alta.

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

Brocha de propiedades

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.

Desarrollo bsico de una aplicacin

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.

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. Las opciones Deshacer y Rehacer estn activadas en la pantalla de edicin de formularios, a travs de los botones de la barra de herramientas.

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

Maquetacin de controles
Para maquetar los controles de un formulario hemos de tener seleccionados, dependiendo de los casos, uno, dos o ms controles. Disponemos de una barra de maquetacin con los siguientes botones: Los cuatro primeros botones alinean los controles seleccionados por los bordes izquierdo, derecho, superior e inferior, respectivamente, del control seleccionado en ltimo lugar. Los dos siguientes centran los controles horizontal y verticalmente, respectivamente, dentro del rea del formulario. Los dos siguientes espacian tres o ms controles a la misma distancia horizontal y vertical entre ellos, respectivamente. Estos dos alinean los botones seleccionados horizontal o verticalmente con respecto al que haya sido seleccionado en ltimo lugar. Los tres botones dan a varios controles el mismo ancho, el mismo alto y el mismo ancho y alto, respectivamente, del control seleccionado en ltimo lugar. Con este control alineamos los botones seleccionados en el rea superior derecha del formulario (Ctrl + B).

04
Este control alinea los botones seleccionados en el rea central inferior del formulario (Ctrl + Shift + B). 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.

Desarrollo bsico de una aplicacin

Botones al pie Subir en tab Bajar en tab

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.

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:

Desarrollo bsico de una aplicacin

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

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
IDENTIFICADOR Cdigo Nombre Ao Estadio Foto DESCRIPCIN Cdigo Equipo Ao fundacin Estadio Foto TIPO Numrico Alfa64 Numrico Alfa64 Objeto Dibujo 30 BYTES 2 30

Desarrollo bsico de una aplicacin e

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 Nombre Lugar Fecha Puesto Foto

DESCRIPCIN Nombre Lugar nacimiento Fecha Puesto Foto

TIPO Alfa128 Alfa64 Fecha Alfa64 Objeto Dibujo

BYTES 35 30

30

La ventana Tabla: Jugadores tiene el siguiente aspecto:

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 Nuevo objeto Nuevo objeto del tipo seleccionado

Nue Con la carpeta azul Jugadores seleccionada, pulsamos el botn va subcarpeta y creamos la carpeta Formularios llamada Jugadores. 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.

Calendario

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

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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: 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:

Nueva carpeta Nuevo objeto

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.

Aadir

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:

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

Desarrollo bsico de una aplicacin e

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

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

Nuevo objeto

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

Desarrollo bsico de una aplicacin e

Botn de radio Palabras

Botn de radio Trozos de palabras: alimentado por la variable PALABRASEXACTAS. Datos fijos: 0. Botn de radio Todas las palabras: alimentado por la variable PALABRASTODAS-ALGUNAS. Dato fijo: 0.

204 205

VELAZQUEZ VISUAL

e Botn de radio Alguna de las palabras: alimentado por la variable PALABRAS-TODAS-ALGUNAS. Dato fijo: 1. Control Nombre campo: autor. Control Edicin: hemos de asociarlo al campo Autor (con la opcin botones arriba y abajo activada, se encuentra en la pestaa Ms estilos. Tambin debe tener activada la opcin men desplegable).
Botn dibujo

Botn dibujo (con la opcin men desplegable activada): funcin a disparar: localizador de autores.

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:

Aadir

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

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

Desarrollo bsico de una aplicacin e

Imprimir

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.

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

Desarrollo bsico de una aplicacin

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.

210 211

VELAZQUEZ VISUAL

Nueva Subir o bajar

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

ADVERTENCIA Esta pistola est orientada al programador o al administrador del sistema para poder comprobar el estado fsico de la tabla; as que no la utilice nunca como opcin para usuarios finales de una aplicacin. Dado el carcter de la misma, en ella no estn implementadas las utilidades que tienen las rejillas (reordenacin de los registros por un campo, edicin directa, etc.).

214 215

VELAZQUEZ VISUAL

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.

Desarrollo bsico de una aplicacin

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-

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.

Desarrollo bsico de una aplicacin e

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.

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

Desarrollo bsico de una aplicacin

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:

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. Fuentes: fuentes de las que dispondremos en el formulario.

Desarrollo bsico de una aplicacin

Puntero del ratn Dibujo Gif Texto esttico Edicin Microescrollers Calendario Botn de radio Check Box 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. 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. De entre estos controles, Dibujo, Texto esttico, Pelcula y Regin pueden disparar opciones, abrindose la ventana propiedades de una opcin de men:
Bsqueda de rbol rbol tabla completa Casillero Pelcula Banda de mosaico Regin Men arbolado Html Crear polgono de la regin Aumentar Zoom Reducir Zoom

222 223

VELAZQUEZ VISUAL

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.

Desarrollo bsico de una aplicacin


Misma altura, anchura y tamao Puntero del ratn Dibujo

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.

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

Desarrollo bsico de una aplicacin

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.

Gif

VENTANA DE PROPIEDADES DEL CONTROL GIF

EJEMPLO DE TEXTO ESTTICO

226 227

VELAZQUEZ VISUAL

Texto esttico Edicin

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.

Desarrollo bsico de una aplicacin

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.

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 Calendario

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.

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

Desarrollo bsico de una aplicacin

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.

Bsqueda de rejilla

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.

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

TRUCO Para evitar este efecto procuraremos situar el control de Bsqueda Rejilla ms abajo que el resto de los controles.

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.

Desarrollo bsico de una aplicacin

Bsqueda de rbol

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.

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

Desarrollo bsico de una aplicacin

Casillero Pelcula

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.

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

Desarrollo bsico de una aplicacin

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:

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.

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.

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.

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

Html

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.

Desarrollo bsico de una aplicacin e

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-

248 249

VELAZQUEZ VISUAL

e cluir carpetas men y como bala el men Autores-Editores. Por ltimo incluimos un cuarto texto esttico, que servir para cerrar la aplicacin, que llevar el ttulo opcional Salir y con la pistola Cerrar aplicacin.

El siguiente paso es el de crear el men Autoexec. Para ello pulsamos el botn Nuevo Objeto y de la Galera de objetos elegimos men tipo formulario. En la pantalla de edicin de mens pinchamos sobre el control texto esttico, arrastrndolo con el ratn hasta la posicin que queramos que ocupe en el men.

04
Con el botn derecho sobre el control aparece la ventana de propiedades del control, en la que pinchamos sobre el botn Editar opcin. En Titulo opcional escribimos Arrancando aplicacin, como pistola elegimos Men, como primera bala elegimos el men General y como segunda bala elegimos el men Autores-Editores. Tambin hemos de marcar la casilla autodisparable. Este men ha de tener como identificador AUTOEXEC para que al ejecutarse el mapa sea el men que Velzquez Visual lo identifique como el men que ha de arrancar en primer lugar.

Desarrollo bsico de una aplicacin e

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.

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

Desarrollo bsico de una aplicacin

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.

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

Bsqueda rejilla

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

Desarrollo bsico de una aplicacin

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. Esquema Una vez dentro del Editor de Proyectos, pulsamos el botn 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. 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):

Nuevo campo

ID DNI

Nombre CIF

Tipo Alfa64

Longitud 9

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
ID PVP FOTO Nombre Precio Foto Tipo Numrico Objeto Dibujo Longitud 4 (2 decimales)

Desarrollo bsico de una aplicacin e

En la tabla VENTAS aadimos los campos siguientes:

ID FECHA CANT

Nombre Fecha Cantidad

Tipo Fecha Numrico

Otras propiedades Contenido inicial: fHoy() Longitud: 4, Decimales: 2, Contenido inicial: %ARTICULO.PVP% Longitud: 4, Decimales: 2, Contenido inicial: fRedondear(%CANT%*%PRECIO%, 2 )

IMP

Importe

Numrico

A continuacin vamos a crear los objetos visuales para las distintas tablas: La tabla CLIENTES: contiene la rejilla CLIENTES que slo mostrar los campos Cdigo y Nombre comercial, y el formulario CLIENTE-NUEVO/MOD, que mostrar todos los campos creados en la tabla. La tabla FAMILIAS contiene la rejilla FAMILIAS que mostrar todos los campos de la tabla, el rbol visor tabla arbolada FAMILIAS, el formulario FAMILIA-NUEVA/MOD que incluye todos los campos de la tabla, y adicionalmente en la tabla se incluye el objeto multi-icono ICOS-FAMILIAS para el rbol visor de tabla arbolada. En la tabla ARTICULOS incluimos la rejilla ARTCULOS, que muestra los campos Cdigo, Nombre, Familia y PVP, el formulario ARTCULOS NUEVO/MOD que incluye todos los campos de la tabla y la bsqueda ARTCULOS-COD. La tabla LINEAS contiene la rejilla LINEAS-FECHA, que muestra todos los campos de la tabla, el formulario LINEA-NUEVA/MOD que contiene todos los campos de la tabla, y la bsqueda LINEAS-COD. Tambin creamos una carpeta dibujo en la que se incluirn los dibujos FONDO y SALIR. El siguiente paso consiste en crear el men sincronizado. Dicho men, que ser el de inicio de la aplicacin (AUTOEXEC), va a tener las siguientes propiedades.

256 257

VELAZQUEZ VISUAL

Vamos a describir los diferentes elementos que va a incluir y sus correspondientes propiedades. Los iremos incluyendo desde la ventana de Edicin del men formulario (accedemos a ella haciendo doble clic sobre el men).

04
Mosaico: ser usado para el fondo del men.

Desarrollo bsico de una aplicacin e

Mosaico Texto esttico

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

VELAZQUEZ VISUAL

Calendario

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.

Desarrollo bsico de una aplicacin e


Casillero alimentado por proceso

Creamos el proceso (objeto Proceso, dentro de la ventana Galera de objetos), que tendr las siguientes propiedades.

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.

Desarrollo bsico de una aplicacin e

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

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 rbol tabla completa: FAMILIAS Calendario: FECHA-DESDE Calendario: FECHA-HASTA Bsqueda rejilla: CLIENTES-COD Casillero: ARTICULOS

Sincroniza a Casillero: ARTICULOS Bsqueda: VENTAS-FECHAS-ART-CLI Bsqueda: VENTAS-FECHAS-ART-CLI Bsqueda: VENTAS-FECHAS-ART-CLI 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
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:

Desarrollo bsico de una aplicacin

Nuevo objeto

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

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. : desplaza una posicin hacia arriba el ndice selec-

Mover hacia arriba cionado. 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

Desarrollo bsico de una aplicacin

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.

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

Ampliar

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.

Desarrollo bsico de una aplicacin

4.5
Archivo

Ejecucin (VRunner)

4.5.1. Interfaz del Ejecutor (VRunner)


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.

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

Desarrollo bsico de una aplicacin

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

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.

Desarrollo bsico de una aplicacin

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:

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

Desarrollo bsico de una aplicacin

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.

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.

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.

Desarrollo bsico de una aplicacin e

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.

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

Bandejas E-mail Organizador

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:

Desarrollo bsico de una aplicacin

? (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.

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

Maestros Histricos Histricos de todos

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.

Desarrollo bsico de una aplicacin

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.

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.

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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

Nueva tabla maestra

04

Desarrollo bsico de una aplicacin

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

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

Desarrollo bsico de una aplicacin

En el campo NOMBRE, sustituiremos el nombre por Descripcin, y usaremos ste como la descripcin corta que exponamos. As, los ndices creados para el campo NOMBRE sern los de Descripcin Corta. Lo que no hemos de hacer es cambiar el identificador, ya que perderamos algunas de las ventajas que ofrece Velzquez Visual para ste. En el ndice CLIENTES aadimos dos componentes: Fecha y Hora de inicio. De esta manera, si tenemos varias tareas para un mismo cliente, stas pueden ser ordenadas adems por la fecha y hora de inicio.

Persona
Comenzamos creando el campo Persona, para lo cual podemos teclear insertar o pulsar el botn Nuevo campo. Velzquez Visual crea un nuevo campo al que hemos de dar un identificador, que ser el que se use para referenciarlo en funciones, procesos, frmulas, etc. Aceptamos el identificador (PERSONAS en este caso) y aceptamos de nuevo (o doble clic del ratn) para que nos aparezca el cuadro Propiedades del campo.
Nuevo campo

300 301

VELAZQUEZ VISUAL

Hemos de rellenar el Nombre del campo, que ser el que aparezca despus en las etiquetas, rejillas, formularios, etc. Le asignaremos el Tipo Alfa 40, ya que para el nombre del usuario nos basta con maysculas. Para el Contenido inicial de este campo usaremos la variable de sistema u, que devuelve el nombre del usuario de la aplicacin. La funcin de este campo ser la de guardar qu usuario crea la tarea.

Fecha
A continuacin crearemos el campo Fecha, que ser el encargado de guardar la fecha de inicio de la tarea. Su identificador ser FECHA y haciendo doble clic veremos la ventana Propiedades del campo.

04
El Nombre del campo ser Fecha, elegiremos el tipo Fecha y en Contenido inicial vamos a hacer que por defecto aparezca la fecha del da en el que damos de alta la tarea. Para ello abrimos el Asistente, pulsamos el botn funciones y de la carpeta fecha elegimos la funcin Hoy.

Desarrollo bsico de una aplicacin

Funciones

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.

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

Desarrollo bsico de una aplicacin

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.

Campos y variables

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

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

Desarrollo bsico de una aplicacin

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-

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

Nuevo objeto

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

Desarrollo bsico de una aplicacin

Usando el botn Aadir, vamos introduciendo el cdigo y la descripcin, hasta completar la lista de tipos de tarea.

Aadir

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.

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

Desarrollo bsico de una aplicacin

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.

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

VELAZQUEZ VISUAL

Campos Aceptar (intro)

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.

Desarrollo bsico de una aplicacin

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

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

Desarrollo bsico de una aplicacin

Nuevo ndice e ndice del campo Crear punteros

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.

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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


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.

Aadir Nueva carpeta y nueva subcarpeta

Lo segundo ser crear carpetas y subcarpetas para los objetos visuales que vamos a ir creando. Usando los botones (Nueva carpeta y nueva subcarpeta) creamos una principal que se llame Clientes para los objetos visuales de esta tabla.

04

Desarrollo bsico de una aplicacin

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.

322 323

VELAZQUEZ VISUAL

Nuevo objeto

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 boNuevo objeto. tn

Clientes Rejilla
Empezaremos a trabajar con la tabla CLIENTES, creando una rejilla donde representaremos los datos del cliente. En la Ventana Principal del Proyecto nos posicionamos en la carpeta de rejillas de Clientes y creamos un nuevo objeto , seleccionando rejilla visor de tablas.

04

Desarrollo bsico de una aplicacin

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

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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.

328 329

VELAZQUEZ VISUAL

Formulario Creacin del formulario


Como pudimos ver en la ventana propiedades de rejilla, a cada rejilla se le puede asignar un formulario de edicin: alta, baja y modificacin. Puede ser un solo formulario con las tres funciones, o bien un formulario especfico para cada funcin. En este ejemplo optamos por la primera opcin. Nos posicionamos en la carpeta de formularios y creamos uno nuevo.

04

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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.

334 335

VELAZQUEZ VISUAL

Botones
Ahora vamos con los botones. Tenemos ya creados uno de aceptar y otro de cancelar. Vamos a ver qu propiedades tienen.

ADVERTENCIA Independientemente de la etiqueta que tenga un botn, lo que realiza depende nica y exclusivamente del comando que le hayamos asignado.

Tanto el botn Aceptar como Cancelar cuentan con una pestaa en las propiedades llamada Comando. En el control Funcin a disparar escogemos lo que debe pasar cuando pulsamos el botn. Aprovechamos a cambiar el tipo de letra en la pestaa Aspecto. Crearemos ahora dos botones nuevos. Uno va a tener la funcin de aceptar pero sin cerrar el formulario, con lo que limpiar de datos ste y nos permitir meter otro cliente sin cerrarlo y volverlo a abrir. Adems, como este formulario va a servir para alta, baja y modificacin, necesitaremos un botn para eliminar. botn con texto, llevndolo hasta Pulsamos con el ratn sobre el control la zona del formulario donde queremos que permanezca. Pulsando con el botn derecho sobre el control aparece la ventana de propiedades del botn.

Botn con texto

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.

Desarrollo bsico de una aplicacin

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

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

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.

Separador de subformularios Aadir Botones al pie

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.

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
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 subir y bajar despus de seleccionar el con-

Desarrollo bsico de una aplicacin

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

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.

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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.

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

VELAZQUEZ VISUAL

Aadir Icono anterior/siguiente Icono de alfa Icono de carpetas Icono de bsqueda

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

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

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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.

352 353

VELAZQUEZ VISUAL

Copiar condiciones coloresfuente Pegar condiciones coloresfuente

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

Desarrollo bsico de una aplicacin

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

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

Desarrollo bsico de una aplicacin

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.

356 357

VELAZQUEZ VISUAL

Caja de grupo Edicin

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

Desarrollo bsico de una aplicacin

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.

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.

Desarrollo bsico de una aplicacin

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

362 363

VELAZQUEZ VISUAL

Calendario

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

Desarrollo bsico de una aplicacin

Check box

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

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.

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


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 .

Objeto texto

04

Desarrollo bsico de una aplicacin

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.

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


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.

Subir y bajar

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.

Desarrollo bsico de una aplicacin

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.

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.

Desarrollo bsico de una aplicacin

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.

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.

Desarrollo bsico de una aplicacin

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.

372 373

VELAZQUEZ VISUAL

Variables globales

Usaremos para resolver la bsqueda el ndice que tenemos creado de FECHA. Pero ste tiene dos componentes: FECHA y HORA-INICIO y debemos resolver ambos. Pulsando doble clic sobre FECHA, usamos como dato lmite inicial la primera de las variables que creamos: $BUS-FECHA-DESDE$ (un identificador, como ya sabemos, entre smbolos $ es una variable) y como dato lmite final la otra: $BUS-FECHA-HASTA$. Para ello podemos usar el asistente de frmulas que, a travs de la opcin del men Variables globales (F6), nos permite escoger las variables de una lista.

04

Desarrollo bsico de una aplicacin

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.

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

Ya tenemos preparados los controles para cliente y entre fechas. Nos falta nicamente el estado de la tarea. Para ello usaremos botones de radio y una variable. La variable ser de tipo numrico, con identificador TAREAS-ESTADO, y de nombre tareas estado: 0-Todas, 1-Pendientes, 2-Realizadas, que indica los estados que puede tener. Tendr persistencia en memoria independiente de cada tarea en 2 plano, y longitud 1 byte.

376 377

VELAZQUEZ VISUAL

Los botones de radio tendrn asignados esta variable. Como texto Todas, Pendientes y Realizadas, y como dato fijo 0, 1 y 2, respectivamente. De este modo, si marcamos el botn de radio Todas, le estaremos pasando a la variable el valor 0, lo que se traduce en que la bsqueda la llevar a cabo sobre todas las tareas (estn realizadas o no).

Agrupamos los controles en una caja y la titulamos Estado. Tenemos entonces terminado el formulario de bsqueda avanzada.

04

Desarrollo bsico de una aplicacin

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.

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

Desarrollo bsico de una aplicacin

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.

Nueva columna

Una vez hecho esto, pulsamos en la cabecera de una cualquiera de las columnas para editar nuevas condiciones de texto y color. Como habamos

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

Desarrollo bsico de una aplicacin

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

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

Desarrollo bsico de una aplicacin

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.

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.

Men arbolado

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

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

Desarrollo bsico de una aplicacin

Podemos ir probando a crear un nuevo cliente:

Aceptamos y creamos una nueva tarea:

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

Desarrollo bsico de una aplicacin

Tambin tenemos a nuestra disposicin la bsqueda avanzada:

Para todas estas bsquedas nos mostrar la rejilla con el formulario de edicin adyacente:

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

Inspectores

5.1

De tablas y campos

(F10)

Inspector de campos

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.

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

Inspectores

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.

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

Inspectores

5.3

Qu objetos usa

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.

398 399

VELAZQUEZ VISUAL

Objetos no usados

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

Inspectores

5.5

Por tipo de objeto

(Ctrl + F9)

Objetos por tipo

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.

400 401

VELAZQUEZ VISUAL

Localizar objeto Objetos por color

Si seleccionamos uno de ellos y hacemos clic dos veces, o pulsamos el botn , nos localiza el objeto en el panel correspondiente.

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

Objetos por frmulas

Permite buscar objetos en los que se utilice una frmula determinada. Al ejecutar este inspector se abrir el cuadro de dilogo siguiente:

402 403

VELAZQUEZ VISUAL

Funciones de frmulas Variables globales Variables locales Lupa Objetos con errores

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

Inspectores

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.

06
Asistentes

06
6.1
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:

Asistentes

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). Funciones (F4). Funciones de dll. Funciones (objeto visual).
Operadores Funciones Funciones de dll Funciones (objeto visual)

408 409

VELAZQUEZ VISUAL

Campos Variables Globales Variables Locales Variables del Sistema Cortar, Copiar y Pegar Deshacer Verificar Ayuda Aceptar

Campos (F5). Variables Globales (F6). Variables Locales (F7). Variables del Sistema (F8). Cortar (Control + X), Copiar (Control + C) y Pegar (Control + V). Deshacer (Control + Z). 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. 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 4 < (2+2) 4 = (2+2) 4!3 condicin cierta. condicin falsa. condicin cierta. condicin cierta 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.

Asistentes

Las funciones
Pulsando el botn funciones, aparecer el asistente de funciones. En el anexo II del manual encontraremos un listado con todas las funciones del Asistente de edicin de frmulas de Velzquez Visual. El asistente para la edicin de frmulas puede volver a abrirse por cada parmetro de la funcin, de esta manera resultar ms fcil su composicin.
Funciones

410 411

VELAZQUEZ VISUAL

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

Asistentes

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

Asistentes

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


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

Variables globales Variables locales

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

Asistentes

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.

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.

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

Asistentes

Al final obtendremos la siguiente ventana de lnea de proceso:

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.

Asistentes

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 \b Campana: es el pitido del sistema. Retroceso: produce el mismo efecto que pulsar la tecla de Retroceso destructivo. Comilla: provoca la introduccin de una comilla. Salto de pgina: provoca el salto de una pgina. Nueva lnea: provoca el salto a la lnea siguiente. Retorno de carro: provoca el retroceso al comienzo de la lnea. Tabulador: produce el mismo efecto que pulsar la tecla del Tabulador. Tabulador Vertical. Barra invertida.

\c \f \n \r \t \v \\

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?

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

Asistentes

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:

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 Variables Globales Variables Locales Variables del Sistema Cortar, Copiar y Pegar Deshacer

Campos (F5). Variables Globales (F6). Variables Locales (F7). Variables del Sistema (F8). Cortar (Control + X), Copiar (Control + C) y Pegar (Control + V). Deshacer (Control + Z).

06
Verificar (F9): este botn comprueba que la sintaxis de la frmula sea correcta. En caso contrario presentar una ventana con el error cometido. Ayuda (F1). Aceptar (Intro): guarda los cambios realizados en la frmula. Cancelar (Esc): cancela los cambios llevados a cabo en la frmula.

Asistentes

Verificar Ayuda Aceptar Cancelar

Cuestiones
1. En una aplicacin queremos ver un precio en tres monedas distintas: euros, libras y dlares. Para ello creamos un formulario en el que introducimos el precio en euros, de modo que los campos precio en libras y precio en dlares sean de tipo frmula y se calculen directamente al meter el precio en euros. En el formulario queremos que aparezcan los tres precios en tres cadenas de formato que nos indiquen la moneda que es.

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.

Asistentes

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

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.

Variables

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.

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

Variables

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

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

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.

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.

Variables

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.

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.