libro de programación en velneo - tomo ii - calidad alta.pdf

Upload: jorge-vega-trigueros

Post on 11-Oct-2015

179 views

Category:

Documents


16 download

TRANSCRIPT

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    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 09Correo electrnico: [email protected]: www.velazquezvisual.com

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    No est permitida la reproduccin total o parcial de este libro, nisu tratamiento informtico, ni la transmisin de ninguna forma opor cualquier medio, ya sea electrnico, mecnico, por fotocopia,por registro u otros mtodos, sin el permiso previo y por escrito delos titulares.

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Agradecemos la inestimable colaboracin de los compaeros detica Software, de los equipos de programacin y soporte, enespecial el gran esfuerzo realizado por Rafael Cueto-FelguerosoSols, y a los equipos de comercial y administracin por sucontribucin a que llegara a buen puerto este manual.

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    ndice

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    01. INTRODUCCIN ............................................................................................................... 151.1. NACIMIENTO Y EVOLUCIN DEVELZQUEZVISUAL............................................................ 171.2. MODELOREAL............................................................................................................ 19

    02. INSTALACIN DE VELZQUEZ VISUAL......................................................................... 212.1. OBTENERVELZQUEZVISUAL........................................................................................ 232.2. REQUISITOS MNIMOS.................................................................................................... 232.3. INSTALACIN DEVELZQUEZVISUAL............................................................................... 232.4. EJECUTABLES DEVELZQUEZVISUAL............................................................................. 232.5. MODOS DE GUARDAR UN PROYECTO. ARCHIVOS GENERADOS PORVELZQUEZVISUAL .......... 24

    03. INTERFAZ DEL EDITOR DE PROYECTOS...................................................................... 273.1. VENTANAPRINCIPAL DELEDITOR DEPROYECTOs ............................................................. 29

    3.1.1. Barra de Mens .......................................................................................... 303.1.2. Barra de Herramientas................................................................................ 323.1.3. Mens de Contexto .................................................................................... 34

    3.2. VENTANAESQUEMA DETABLAS...................................................................................... 353.2.1. Barra de Mens .......................................................................................... 393.2.2. Barra de herramientas y opciones.............................................................. 393.2.3. Mens de Contexto .................................................................................... 41

    3.3. PERSONALIZACIN DEL ENTORNO DE TRABAJO................................................................. 423.3.1. Personalizacin de Barras de Herramientas............................................... 433.3.2. Personalizacin del Entorno ....................................................................... 443.3.3. Personalizacin del Proyecto..................................................................... 453.3.4. Personalizacin del Esquema de Tablas..................................................... 47

    04. DESARROLLO BSICO DE UNA APLICACIN.............................................................. 494.1. EXPLICACIN BSICA Y GENERAL .................................................................................... 51

    4.1.1. Anlisis de la informacin ........................................................................... 514.1.2. Principales elementos que componen una aplicacin ............................... 51

    4.2. INICIANDO EL PROYECTO............................................................................................... 534.2.1. Editor de Proyectos .................................................................................... 534.2.2. Fuentes por defecto................................................................................... 544.2.3. Propiedades del Proyecto .......................................................................... 554.2.4. Tareas pendientes....................................................................................... 60

    4.3. ESQUEMA DE TABLAS.................................................................................................... 614.3.1. Tablas de datos........................................................................................... 614.3.2. Tablas de datos: maestras .......................................................................... 614.3.3. Enlace a tabla de datos maestra (enlace singular y plural)......................... 96

    4.4. OBJETOSVISUALES...................................................................................................... 1084.4.1. Galera de objetos....................................................................................... 1084.4.2. Rejilla visor de tablas .................................................................................. 1104.4.3. Formulario de Edicin Fichas ..................................................................... 1344.4.4. Bsquedas .................................................................................................. 1904.4.5. Mens ......................................................................................................... 2084.4.6. Localizador.................................................................................................. 272

    4.5. EJECUCIN(VRUNNER) ................................................................................................ 2774.5.1. Interfaz del Ejecutor (VRunner) ................................................................... 2774.5.2. Navegacin en el ejecutor.......................................................................... 287

    Indice

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    10 11 VELAZQUEZ VISUAL

    4.5.3. Transacciones ............................................................................................. 2904.6. A GENDA DETAREAS ..................................................................................................... 2924.6.1. Exposicin del problema ............................................................................ 2924.6.2. Esquema de Tablas..................................................................................... 2944.6.3. Objetos Visuales......................................................................................... 320

    05. INSPECTORES .................................................................................................................. 3915.1. DE TABLAS Y CAMPOS (F10) ................................................................................ 3935.2. DNDE SE USA EL OBJETO (F9)................................................................................ 3945.3. QU OBJETOS USA ................................................................................................ 3975.4. OBJETOS NO USADOS ............................................................................................. 398

    5.5. POR TIPO DE OBJETO (Ctrl + F9)............................................................................. 3995.6. OBJETOS DE UN COLOR (F3) ................................................................................... 4005.7. CONTENIDO DE FRMULAS ....................................................................................... 4015.8. ERRORES DEL PROYECTO ......................................................................................... 402

    06. ASISTENTES...................................................................................................................... 4056.1. A SISTENTE PARA EDICIN DE FRMULAS .......................................................................... 407

    6.1.1. Sintaxis de las frmulas. Operadores y funciones..................................... 4086.1.2. Operaciones avanzadas.............................................................................. 413

    6.2. USO DE LAS CADENAS DE FORMATO................................................................................ 4216.2.1. Sintaxis de las cadenas de formato............................................................ 421

    6.2.2. El asistente para la edicin de cadenas de formato.................................. 4226.2.3. Subcadenas de formato ............................................................................. 4236.2.4. Conversin automtica de datos y secuencias de escape en cadenas

    de caracteres .............................................................................................. 427

    07. VARIABLES........................................................................................................................ 4297.1. VARIABLES GLOBALES ................................................................................................... 431

    7.1.1. Definicin .................................................................................................... 4317.1.2. Tipos de Variables Globales (en memoria y en disco)................................ 433

    7.2. VARIABLES DE SISTEMA................................................................................................. 4347.2.1. Definicin y propiedades ............................................................................ 434

    7.2.2. Variables de sistema de Velzquez Visual.................................................. 4357.3. VARIABLES LOCALES ..................................................................................................... 437

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    TOMO II

    08. DESARROLLO COMPLETO DE UNA APLICACIN....................................................... 158.1. TIPOS DE TABLA........................................................................................................... 17

    8.1.1. Tabla Submaestra ....................................................................................... 178.1.2. Tabla Arbolada ............................................................................................ 208.1.3. Tablas histricas......................................................................................... 248.1.4. Maestro de segundo nivel con clave numrica.......................................... 328.1.5. Histrico doble........................................................................................... 378.1.6. Creacin de una tabla igual a una base de datos externa ......................... 39

    8.2. TIPOS DE ENLACE......................................................................................................... 40

    8.2.1. Asistentes para la creacin de enlaces ...................................................... 408.2.2. Enlace a hermano contiguo ........................................................................ 418.2.3. Singular de plural por posicin................................................................... 458.2.4. Singular de plural por ndice....................................................................... 468.2.5. Enlace a tabla de datos indirecta real y virtual.......................................... 498.2.6. Las actualizaciones..................................................................................... 548.2.7. Componente de actualizacin a un hermano contiguo.............................. 588.2.8. Enlace a maestro de una tabla contra s misma......................................... 62

    8.3. A NLISIS DE LA INFORMACIN: EJEMPLOS ....................................................................... 648.3.1. Un centro de enseanza............................................................................. 648.3.2. Empresa de instalacin de cristalera para vehculos................................. 65

    8.3.3. Aplicacin de anlisis para obras literarias................................................. 678.3.4. Una galera de arte..................................................................................... 688.3.5. Gestin de un colegio................................................................................. 698.3.6. Gestin de una librera................................................................................ 718.3.7. Aplicacin para turismo rural...................................................................... 738.3.8. Gestin de un Quiosco............................................................................... 788.3.9. Pedidos de compras................................................................................... 868.3.10. Aplicacin para control de existencias en almacenes (caso de compras) .. 918.3.11. Tienda de discos......................................................................................... 968.3.12. Hotel........................................................................................................... 988.3.13. Base de datos de cine................................................................................ 104

    8.3.14. Gestin comercial....................................................................................... 1138.4. ELALMACN DEOBJETOS ............................................................................................ 1278.5. MS OBJETOS VISUALES............................................................................................... 136

    8.5.1. La Lupa ................................................................................................. 1368.5.2. Encarpetado de Histrico ..................................................................... 1418.5.3. Cesta de la compra ............................................................................... 1498.5.4. Hoja de Clculo ..................................................................................... 1558.5.5. Base de datos externa ODBC-DAO ...................................................... 1598.5.6. Dibujo .................................................................................................... 1648.5.7. Multi-Iconos ........................................................................................ 1698.5.8. Imagen Gif ............................................................................................. 170

    8.5.9. Barras de Herramientas ...................................................................... 1708.5.10. Impresora Lgica .................................................................................. 1838.5.11. Comunicacin Serie .............................................................................. 1848.5.12. rbol Visor de Tablas .......................................................................... 186

    Indice

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    12 13 VELAZQUEZ VISUAL

    8.5.13. Casillero ................................................................................................ 1898.5.14. Agendizador .......................................................................................... 2058.5.15. Informe .................................................................................................. 2078.5.16. Pgina Html ........................................................................................... 2538.5.17. Componente Html ................................................................................ 2568.5.18. Editor de Pginas Html............................................................................... 2588.5.19. Procesos ............................................................................................... 2798.5.20. Demonios .............................................................................................. 2878.5.21. Funcin ............................................................................................... 2888.5.22. Funciones de Procesos .............................................................................. 2898.5.23. Ejecucin de procesos en primer, segundo y tercer plano en la arquitectura

    VRunner y la arquitectura cliente-servidor de Velzquez Visual................. 4048.5.24. Tubos .......................................................................................................... 4068.5.25. Librera de Funciones DLL ................................................................... 4198.5.26. Directorio de Tablas ............................................................................ 424

    09. EJECUTAR UNA APLICACIN......................................................................................... 4319.1. CMO EJECUTAR UN PROYECTO ..................................................................................... 4339.2. INICIO DE UNA APLICACIN, CLAVE Y NOMBRE DE USUARIO................................................ 4339.3. EL MEN DEL USUARIO Y SUS OPCIONES ......................................................................... 4359.4. QU OPCIONES NOS DAN LAREJILLA, ELFORMULARIO Y LOSVISORES DETABLASARBOLADAS.... 436

    9.4.1. Formas de llamar a una rejilla..................................................................... 437

    9.4.2. Formas de llamar a un formulario............................................................... 4379.4.3. Eliminacin temporal de un elemento en una rejilla................................... 4399.4.4. Invertir el orden de una lista dentro de una rejilla ...................................... 4399.4.5. Seleccin mltiple de registros en una rejilla (Multiseleccin) ................... 4409.4.6. Edicin directa de rejillas............................................................................ 4429.4.7. Exportacin Ascii........................................................................................ 4439.4.8. La Cesta de la Compra............................................................................... 4449.4.9. Guardar y recuperar listas virtuales en disco............................................. 4489.4.10. Imprimir desde una rejilla o un formulario.................................................. 4489.4.11. Cmo introducir los datos .......................................................................... 4499.4.12. Fundir una ficha con otra............................................................................ 452

    9.4.13. Cambiar aspecto de la rejilla ...................................................................... 4539.4.14. Cambio de visualizacin de las hojas de clculo ....................................... 4549.4.15. Imgenes dinmicas ................................................................................... 4549.4.16. Rejillas encarpetadas en formularios (encarpetados de histrico) ............. 4599.4.17. Usos avanzados de una rejilla.................................................................... 4629.4.18. Utilidades .................................................................................................... 4719.4.19. Ejecucin de procesos desde una rejilla .................................................... 4739.4.20. Conmutador de herencia de histricos para arbolados ............................. 4769.4.21. Altas desde un Localizador Arbolado......................................................... 478

    9.5. EXPLORADORWEB....................................................................................................... 4799.6. CORREO ELECTRNICO ................................................................................................. 480

    9.7. INCORPORACIN DE UN MANUAL DE AYUDA PROPIO PARA UNA APLICACIN........................... 480

    10. INSTALACIN DE APLICACIONES ................................................................................. 48310.1. VERSIN DEVELZQUEZVISUAL BASADA EN SERVIDOR DE DISCO(MONOPUESTO) ................ 485

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    10.2. VERSIN CLIENTE-SERVIDOR DEVELZQUEZVISUAL......................................................... 48610.3. CREACIN DE APLICACIONES PARA EJECUTAR DESDECD-ROM......................................... 487

    11. SERVIDOR DE APLICACIONES....................................................................................... 48911.1. INSTALACIN DELSERVIDOR.......................................................................................... 49211.2. INTERFAZ DELSERVIDOR ............................................................................................... 49311.3. BARRA DE MENS ........................................................................................................ 495

    11.3.1. Aplicaciones................................................................................................ 49511.3.2. Editar........................................................................................................... 49611.3.3. Servicios..................................................................................................... 49711.3.4. Utilidades .................................................................................................... 497

    11.3.5. Ver............................................................................................................... 49811.3.6. Ventana ....................................................................................................... 49911.3.7. Ayuda .......................................................................................................... 500

    11.4. BARRA DE HERRAMIENTAS ............................................................................................. 50011.5. CONFIGURACIN DELSERVIDOR..................................................................................... 502

    11.5.1. Pestaa Estilos............................................................................................ 50311.5.2. Pestaa VATP ............................................................................................. 50411.5.3. Pestaa HTTP ............................................................................................. 50511.5.4. Pestaa iRunner.......................................................................................... 50611.5.5. Pestaa Licencia......................................................................................... 50711.5.6. Configuracin bsica .................................................................................. 507

    11.6. REA DE CONFIGURACIONES .......................................................................................... 50811.6.1. Pestaa Aplicaciones.................................................................................. 50811.6.2. Pestaa Usuarios ........................................................................................ 51011.6.3. Pestaa Enganches .................................................................................... 51311.6.4. Pestaa Transacciones ............................................................................... 51411.6.5. Pestaa Archivos ........................................................................................ 516

    11.7. CONFIGURACIN DEUSUARIOS ...................................................................................... 51911.8. CONFIGURACIN DEGRUPOS DE USUARIOS..................................................................... 52711.9. CONFIGURACIN DEGRUPOS DE MENSAJERA.................................................................. 53211.10. CONFIGURACIN DETAREAS.......................................................................................... 534

    11.10.1. Pestaa Tareas programadas............................................................... 53411.10.2. Pestaa Tareas ejecucin.................................................................... 536

    11.11. HISTORIAL DEL SERVIDOR .............................................................................................. 53711.11.1. Opciones de men .................................................................................... 53811.11.2. Configuracin bsica del Historial del servidor......................................... 543

    11.12. CONFIGURACIN DE LOS DOMINIOS WEB......................................................................... 54411.13. NAVEGADORVELZQUEZVISUAL .................................................................................... 547

    11.13.1. Instalacin del Navegador ......................................................................... 54711.13.2. Interfaz del Navegador.............................................................................. 54811.13.3. Barra de mens ......................................................................................... 54911.13.4. Barra de herramientas ............................................................................... 560

    11.14. OPTIMIZACIN DE APLICACIONES ENCLIENTE-SERVIDOR................................................... 56311.14.1. Sockets TCP: retardos y optimizacin ...................................................... 56311.14.2. Optimizar el tamao del mapa.................................................................. 56411.14.3. Elementos que retardan una aplicacin .................................................... 56411.14.4. Transacciones ............................................................................................ 56611.14.5. Optimizaciones para el rendimiento ptimo en ejecucin ........................ 567

    Indice

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    14 15 VELAZQUEZ VISUAL

    11.14.6. Efectos negativos no deseados................................................................ 57211.15. INCORPORACIN DE UN MANUAL DE AYUDA PROPIO PARA UNA APLICACIN........................... 575

    12. EDITOR DE PERSONALIZACIONES............................................................................... 57712.1. INTRODUCCIN .............................................................................................................. 57912.2. INTERFAZ DELEDITOR..................................................................................................... 580

    12.2.1. Partes de la ventana del editor.................................................................... 58012.2.2. Barra de Mens........................................................................................... 58112.2.3. Barra de Herramientas ................................................................................. 58312.2.4. Personalizacin del entorno de trabajo ....................................................... 584

    12.3. CREACIN DE PERSONALIZACIONES................................................................................. 586

    12.3.1. Designacin de objetos como personalizables (Editor de Proyectos)........ 58612.3.2. Nueva personalizacin (Editor de Personalizaciones).................................. 58712.4. PERSONALIZAR OBJETOS DE UN MAPA DEVELZQUEZVISUAL ............................................ 589

    12.4.1. Personalizar un informe ............................................................................... 58912.4.2. Personalizar un dibujo.................................................................................. 59112.4.3. Crear informes y dibujos.............................................................................. 592

    12.5. CARGAR LAS PERSONALIZACIONES EN LA APLICACIN........................................................ 593

    13. IMPORTADOR XBASE ...................................................................................................... 60913.1. INICIO DELIMPORTADORXBASE...................................................................................... 61113.2. IMPORTAR UNA BASE DE DATOSASCII............................................................................ 61213.3. IMPORTAR UNA BASE DE DATOS DEDBASE....................................................................... 615

    ANEXO I: FORMATEADORES DE VELZQUEZ VISUAL....................................................... 617ALFABTICOS......................................................................................................................... 619NUMRICOS ........................................................................................................................... 619DE FECHAS ............................................................................................................................ 619DE HORAS............................................................................................................................. 620

    ANEXO II: FUNCIONES DEL ASISTENTE DE EDICIN DE FRMULASANEXO II: DE VELZQUEZ VISUAL ....................................................................................... 623

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

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    08Desarrollocompleto deuna aplicacin

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    8.1 Tipos de tablaYa hemos visto cmo las tablas son los objetos que usamos para almace-nar la informacin de manera organizada. Tambin hemos introducido lastablas de tipomaestro de clave numrica y las de tipo esttico.A continua-cin vamos a ver el resto de tipos de tablas de datos con los que cuentaVelzquez Visual.

    8.1.1. Tabla Submaestra

    Son tablas que necesitan de una tabla padre para completarse, estando sucdigo constituido por la unin del cdigo del padre, o padres (no hay lmi-te en el nmero de niveles) ms el suyo propio. De esta forma la tabla sub-maestra tendr un subcdigo propio por cada cdigo padre. Pueden exis-tir dos fichas con el mismo subcdigo mientras la ficha de la tabla padre seadiferente.

    Ejemplos de tablas submaestras pueden ser: PROVINCIA, siendo su padrePAIS. POBLACIN, siendo su padre PROVINCIA, etc.

    Para crear una tabla submaestra debemos pulsar el botn Nueva tabla sub-maestra , en la barra de herramientas situada a la derecha en la ventanaEsquema de tablas del Editor. Aparecer la ventana correspondiente a laspropiedades de la tabla submaestra.

    08 Desarrollo completode una aplicacin

    Nueva tabla submaestra

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    18 19 VELAZQUEZ VISUAL

    Como podemos ver, las propiedades son similares a las vistas para la tablamaestra, con el aadido de que debe indicarse cul va a ser la tabla de da-

    tos padre de la tabla submaestra.

    La Longitud-rango que especificamos no es el nmero mximo de registrosde la tabla, sino de registros por cada maestro de la tabla padre.

    Ejemplo: creacin de una tabla submaestra

    En este ejemplo vamos a crear una tabla maestra y a continuacin otra tabla,submaestra de la anterior. Para ello debemos seguir los siguientes pasos:

    Entramos en el Editor de proyectos y creamos un nuevo proyecto.

    Creamos una tabla maestra (desde el Editor de Esquemas pulsamos sobreel botn Nueva tabla maestra ) con las siguientes propiedades:nombre

    plural: Pases. Nombre singular: Pas. Pulsamos el botnAceptar.

    A continuacin pulsamos el botn Nueva tabla submaestra y creamosuna tabla submaestra con las siguientes propiedades: Tabla de datos padre:PAISES. Nombre plural: Provincias. Nombre singular: Provincia. Pulsamosel botnAceptar.

    VENTANA CREACIN DE MAESTRO

    e

    Nueva tabla maestra

    Nueva tabla submaestra

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Si observamos el Editor de Esquemas podremos ver cmo hay dos tablas:PAISES y PROVINCIAS. Tambin se puede apreciar cmo Velzquez Visualha enlazado directamente las tablas PAISES y PROVINCIAS. Esto siemprelo hace al crear una tabla submaestra, crendose automticamente dichoenlace porque la relacin que existe entre una tabla submaestra y su tablapadre es muy fuerte (recuerde que el cdigo de la tabla submaestra estcompuesto por el cdigo de la tabla padre ms el suyo propio).

    08 Desarrollo completode una aplicacin

    CREACIN DE SUBMAESTRO

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    20 21 VELAZQUEZ VISUAL

    Se pueden crear tantos niveles de tablas submaestras como se quiera, es de-cir, en nuestro caso se podra crear otra tabla submaestra que tenga como ta-

    bla padre a PROVINCIAS (por ejemplo una tabla CIUDADES), y a su vez la ta-bla submaestra creada ahora sera la tabla padre de otra submaestra y as in-definidamente. El ndice CODIGO de cada una estara formada como se pue-de suponer, por el campo CODIGO de la tabla padre ms el campo CODIGOde la propia tabla. Por lo general, a la hora de realizar un desarrollo con Velz-quez Visual, no suelen realizarse ms de dos niveles de tablas submaestras, nopor limitacin tcnica ni de rendimiento, sino por simplificar la programacin.

    8.1.2. Tabla ArboladaLas tablas arboladas son en realidad tablas maestras que se visualizan conuna estructura arbolada (al estilo de un rbol de directorios), de modo que sucampo CODIGO se abre en nuevas ramas por cada carcter o grupo de ca-

    NDICE CDIGO DE LA TABLA SUBMAESTRA

    e

    Cuestiones1. Crear dos tablas: una de tipo maestro y otra submaestra de la ante-

    rior. Ver cmo el ndice cdigo de la tabla submaestra est com-puesto por el cdigo propio y el de su tabla padre.

    2. Crear una tabla de tipo maestro: PAISES, otra submaestra de PAI-SES: COMUNIDADES, y otra submaestra de COMUNIDADES: PRO-VINCIAS. Comprobar cmo Velzquez Visual no slo enlaza PAISEScon COMUNIDADES y COMUNIDADES con PROVINCIAS, sino quetambin enlaza PAISES con PROVINCIAS. Comprobar tambin c-mo el ndice cdigo de PROVINCIAS est compuesto por el cdigopropio ms el de COMUNIDADES y PAISES.

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    racteres que aadimos. Es el campo CODIGO el que determina la ramificacin,representando cada carcter o grupo de caracteres un piso o nivel del rbol.

    Vemoslo con un ejemplo de Astronoma: en el Universo encontramos muchostipos de objetos, por ejemplo galaxias. Pero las galaxias a su vez se clasificanen espirales, barradas, irregulares... y cada uno de estos grupos presenta mssubdivisiones an, y esto ocurre para casi todos los tipos de objeto del Uni-verso, sean galaxias, estrellas, nebulosas... Claramente, si queremos organizarlos tipos de objeto del Universo en una tabla, sta ha de ser de tipo arbolado.

    Para introducir un registro en la tabla arbolada hemos de especificar su c-digo y su nombre, lo que se hace en ejecucin mediante un formulario.

    Por ejemplo, para el registro galaxia especificamos G, y ya tenemos untipo de objeto: un registro de la tabla.

    Metamos ahora otro registro, por ejemplo, galaxia espiral. Las galaxias es-pirales son un subgrupo de las galaxias y esto queremos que se refleje enla estructura de la tabla. Para ello asignamos el cdigo GS al tipo gala-xia espiral: ya tenemos dos registros, este ltimo colgando del anterior, de

    modo que las galaxias espirales heredan todas las caractersticas de las ga-laxias. De igual modo, al registro galaxia irregular podramos asignarle elcdigo GI, reflejando as que las irregulares son un subgrupo de las gala-xias. Ya tenemos tres registros, colgando los dos ltimos del primero.

    El rbol puede seguir creciendo (el lmite est en la longitud del cdigo dela tabla), por ejemplo, asociamos el cdigo GSA a las galaxias espiralesde tipo A (y ya tendramos cuatro registros en la tabla).

    08 Desarrollo completode una aplicacin

    ASPECTO QUE PODRA TENER EL RBOL DE TIPOS DE OBJETOS DEL UNIVERSO

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    22 23 VELAZQUEZ VISUAL

    Hasta ahora hemos construido cada nivel con un solo carcter del campocdigo, pero tambin puede hacerse con ms de uno, por ejemplo asig-

    nando GAL a las galaxias, ES a las espirales,A a las de tipo A...

    Al igual que el resto de tablas, cada registro de una tabla arbolada est or-ganizado en campos. Por seguir con este ejemplo, los tipos de objeto delUniverso podran tener los campos Ao de descubrimiento, Investigado ?(booleano), Naturaleza del objeto, etc.

    Gracias a las tablas arboladas podemos definir el tipo al que pertenecen losregistros de otra tabla, histrica de la arbolada. Por ejemplo, supongamosla tabla LIBROS, en la que cada registro se refiere a un volumen en particu-lar. En una tabla arbolada que llamaremos MATERIAS cada registro har re-

    ferencia a una materia en particular (historia, historia del siglo XX, historiadel siglo XIX, historia militar del siglo XX, historia de la monarqua del sigloXX... es decir, una estructura claramente arbolada). Estableciendo que LI-BROS sea histrica de MATERIAS, podemos capturar desde LIBROS la ma-teria a la que pertenece el libro (la materia no es ms que un registro de laarbolada MATERIAS).

    Cuando presentamos los histricos de una tabla arbolada, podemos hacerque, dado un tipo o nivel de la arbolada, nos presente todos los histricosde todas las ramas contenidas en l. A esto se le denominaherencia arbo-

    lada y se consigue activando el botn . Si desactivamos la herencia ar-

    bolada y pedimos que nos muestre los histricos a un nivel determinado,slo nos mostrar los registros definidos con el tipo correspondiente a esenivel (y no todos los contenidos en niveles inferiores).

    Cuando introducimos un nuevo registro en una tabla arbolada hemos de te-ner cuidado a la hora de meter el cdigo. Si un registro tiene por cdigo A,y otro tiene AB, el de cdigo AB se ver incluido en la rama iniciada por elde cdigo A. Ahora bien, si usamos nmeros tengamos cuidado, ya que to-

    dos los registros cuyo cdigo empiece por 1 (10, 119, 1031...) se vern in-cluidos dentro de la rama iniciada por el de cdigo 1, todos aquellos cuyocdigo comience por 2 se incluirn en la rama iniciada por el de cdigo 2 yas sucesivamente. Lo ms usual es definir el campo cdigo como alfanu-mrico.

    Se recomienda utilizar un

    Alfa40 para el campo

    cdigo, con el fin de ahorrarespacio en disco.

    TRUCO

    Herencia arbolada

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Las propiedades de la tabla arbolada son las mismas que las de la tablamaestra. Especial mencin merece el apartado Longitud-Rango: se refiere

    al nmero de niveles que va a tener la tabla arbolada. Por ejemplo, si unatabla arbolada tiene de longitud 2 bytes, el rbol tendr 3 niveles, si tiene 4bytes tendr 6 niveles, etc.

    Ejemplo: creacin de una tabla arbolada

    Vamos a crear una tabla arbolada a la que llamaremos FAMILIAS. ste esun ejemplo clsico, ya que una familia est compuesta de subfamilias, quea su vez pueden presentar ms subniveles.

    Dentro del Editor de Esquemas, pulsamos el botn Nueva tabla arbolada .

    Aparecer la ventana creacin de maestro con clave arbolada, en la que es-cribimos Nombre plural: Familias. Nombre singular: Familia.

    Segn el nmero de pisos que vaya a tener el rbol seleccionamos la LON-GITUD-RANGO. En este caso marcamos el radio botn 8 bytes, lo que nospermite alcanzar hasta 12 subniveles.

    Pulsamos el botnAceptar.

    En el Editor de Esquemas aparecer el icono de la tabla arbolada FAMILIAS.

    08 Desarrollo completode una aplicacin

    CREACIN DE MAESTRO CON CLAVE ARBOLADA

    e

    Nueva tabla arbolada

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    24 25 VELAZQUEZ VISUAL

    8.1.3. Tablas histricas

    La caracterstica principal de una tabla histrica es que no tiene campo CO-DIGO que permita apuntar a un registro concreto, pero s puede tener otrosndices de clave nica. Se utilizan para almacenar las lneas de una tablamaestra. Las tablas histricas suelen tener un campo enlazado a una tablamaestra y un ndice que ser usado para declarar el enlace histrico de latabla maestra.

    Sus propiedades son fundamentalmente las vistas hasta ahora para el

    resto de tablas. Incorpora adems la posibilidad de que Velzquez Visualcree automticamente un campo llamado FECHA y su correspondiente n-dice. Tambin es posible indicar cul o cules van a ser sus tablas maes-tras (lo normal es no enlazar la tabla a sus maestros desde esta ventanade propiedades).

    El rbol, adems del cdigo,

    siempre presenta (y slo

    presenta) el campo Nombre.

    Para incluir ms datos

    definimos el campo Nombre

    como frmula alfabtica, o

    con un contenido inicial en

    funcin de otros campos, y

    as podremos mostrar lo que

    queramos.

    TRUCO

    Cuestiones1. Encontrar distintos casos que presenten una estructura arbolada

    (clasificaciones biolgicas, materias de libros, habitaciones de unhotel, estructura de los captulos de un libro...).

    2. Crear una tabla arbolada y construir el rbol de las galaxias espirales.

    3. Crear una tabla histrica de la arbolada que hemos creado en lacuestin 2. Dar de alta una serie de registros con distintos tipos de-finidos en la tabla arbolada. Una vez hecho esto comprobar cmofunciona la herencia arbolada.

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Ejemplo: creacin de una tabla tipo histrico

    Vamos a crear dos tablas: una maestra y otra de tipo histrico, y vamos aestablecer un enlace entre ambas.

    En el Editor de Proyectos creamos una nueva tabla maestra con lassiguientes propiedades: Nombre plural:Albaranes. Nombre singular:Al-barn.

    Dentro del Editor de Esquemas, pulsamos el botn Nueva tabla hist-rica .

    Aparecer la ventana Propiedades de la tabla histrica en la que aadi-

    mos las siguientes propiedades: Nombre plural: Lneas de Albaranes.Nombre singular: Lnea de Albarn. Pulsamos el botnAceptar.

    08 Desarrollo completode una aplicacine

    Nueva tabla maestra

    Nueva tabla histrica

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    26 27 VELAZQUEZ VISUAL

    Ya tenemos la tabla ALBARANES, que almacenar los datos correspon-dientes a la cabecera del Albarn (nmero de albarn, fecha, cdigo de

    cliente, etc.) y la tabla LNEAS DE ALBARN que contendr las lneas deun albarn (artculo, cantidad, precio, etc.). Hemos de enlazar ambas ta-blas mediante un enlace singular-plural. Con el ratn pinchamos sobre elenlazador (botn superior izquierdo) del maestro (ALBARANES) y arras-tramos hasta LNEAS DE ALBARAN.

    Consideremos ahora la situacin siguiente: queremos una aplicacin con laque llevar el registro de los artculos que tenemos en varios almacenes, demodo que para un almacn sepamos todos los artculos que se guardan enl, mientras que para un artculo sepamos todos los almacenes en los quese guarda. Est claro que en nuestro diseo vamos a contar con dos tablas:

    ARTCULOS y ALMACENES. Ahora bien, cmo las enlazamos? Ya sabe-mos que hemos de enunciar dos frases que nos ayuden, stas son: En unalmacn podemos tener muchos artculos y un artculo podemos tenerloen muchos almacenes. Vemos que este caso difiere de los que nos haba-

    mos encontrado hasta el momento, ahora tenemos unplural en los dos sen-tidos oplural mltiple.

    Para resolver estos casos hacemos uso de una tabla de tipo histrico quehaga de intermediaria. Vemoslo con un ejemplo.

    Ejemplo: resolucin de un doble plural

    El planteamiento es el siguiente: tenemos dos tablas, ALMACENES y ARTCU-LOS, que como ya hemos visto estn relacionadas mediante un doble plural.

    Dado un almacn queremos saber todos los artculos que se guardan en l, ydado un artculo queremos saber todos los almacenes en los que est.

    Comenzamos el diseo de la aplicacin creando dos tablas de tipo maes-tro normal con clave numrica: ALMACENES y ARTCULOS. Nos es sufi-

    e

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    ciente con los campos CODIGO y NOMBRE que Velzquez crea por defec-to en ellas. En ARTCULOS llevaremos recuento de todos los artculos que

    tenemos, mientras que ALMACENES har recuento de nuestros almacenes.

    A continuacin vamos a crear una tabla de tipo histrico que resuelva el do-ble plural. Para ello pulsamos el botn Nueva tabla histrica , aparecien-do la ventana Creacin de Histrico.

    En Pluralescribimos Existencias, mientras que en Singularescribimos Existen-cia. Tambin quitamos el check Campo fecha y pulsamos el botnAceptar.

    Ahora que ya tenemos creada la tabla de tipo histrico el siguiente paso escrear un enlace a histrico desde las dos tablas maestras creadas anterior-mente. Para ello pulsamos con el ratn sobre el enlazador en la tabla AL-MACENES y arrastramos hasta la tabla histrica. Repetimos el proceso conla tabla ARTCULOS.

    Al establecer estos enlaces contra la tabla EXISTENCIAS, Velzquez hacreado en ella los camposAlmacenes yArtculos, junto con sus correspon-

    dientes ndices, es decir, los registros de la tabla histrica constan de doscampos:Almacenes yArtculos.

    08 Desarrollo completode una aplicacine

    Nueva tabla histrica

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    28 29 VELAZQUEZ VISUAL

    Hacemos ahora doble clic sobre uno de los dos ndices de la tabla EXIS-TENCIAS, hagmoslo sobre el ndiceAlmacenes, por ejemplo. Le aadimosel componente Artculos y le damos el tipo Clave nica. As conseguimosque en esta tabla no se repitan registros (es decir, nunca se repite una mis-ma pareja almacn - artculo).

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Este diseo ya nos resuelve el doble plural. Para verlo hemos dado de altalos siguientes registros de la tabla ARTCULOS:

    Tambin hemos dado de alta los siguientes registros de la tabla ALMACENES:

    En EXISTENCIAS cada registro que damos de alta liga un binomio almacn-artculo, de modo que se registran, para cada almacn, todos los artculosque contiene (o visto de otro modo, para cada artculo, todos los almace-

    nes en los que ste se encuentra).

    En nuestro ejemplo hemos creado un formulario para dar de alta los regis-tros de la tabla ALMACENES-ARTCULOS.

    Supongamos entonces que en la tabla ARTCULOS elegimos un artculodeterminado, por ejemplo camisetas. Podemos navegar hacia histricocon la opcin Navegante/Histricos del men del ejecutor.

    08 Desarrollo completode una aplicacine

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    30 31 VELAZQUEZ VISUAL

    Al pulsar sobre la opcin del men Navegante/Histricos, Velzquez mues-tra la ventana Navegante: Seleccin de Histrico. En ella hemos de especifi-car hacia qu histrico de la tabla ARTCULOS nos vamos a mover. En estecaso slo aparece EXISTENCIAS por ser su nico histrico. A la derechahemos de seleccionar la rejilla en la que vamos a ver los registros histricos.

    Le damos al botnAceptary aparecern en la rejilla todos los registros dela tabla EXISTENCIAS que son histricos del artculo.

    Una vez obtengamos estos registros de histrico, podemos navegar hacia elmaestro ALMACENES, obteniendo todos los almacenes en los que se en-cuentra el artculo. Para ello hemos de seleccionar la opcin Navegante/Maes-tros, apareciendo la ventana Navegante: Seleccin de Maestro, en la que he-mos de indicar hacia qu maestro nos movemos, en este caso Almacn.

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Al aceptar obtendremos una lista de todos los almacenes en los que se en-cuentra el artculo. Ya tenemos uno de los sentidos del plural: los almace-nes del artculo.

    Con el otro sentido del plural el proceso es idntico: partimos ahora de unregistro de la tabla ALMACENES, un almacn en concreto, y navegamoshacia histrico obteniendo todos los registros de la tabla EXISTENCIAS enlos que aparece el almacn. Si navegamos hacia el maestro ARTCULOSobtendremos todos los artculos que se guardan en el almacn (ste es elotro sentido del plural, los artculos del almacn).

    08 Desarrollo completode una aplicacine

    Cuestiones1. Sugerir distintos ejemplos en los que aparezca el doble plural (AUTO-

    RES-LIBROS, ALUMNOS-PROFESORES, LADRONES-ROBOS).

    2. Siguiendo el ejemplo anterior resolver el doble plural AUTORES-LI-BROS (caso particular de que un libro tenga ms de un autor). Darde alta registros en las tablas AUTORES, LIBROS y LIBROS-AUTO-

    RES. Movindose por las tablas encontrar todos los libros de un au-tor y todos los autores de un libro.

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    32 33 VELAZQUEZ VISUAL

    8.1.4. Maestro de segundo nivel con clave numrica

    Supongamos una aplicacin en la que tenemos dos tablas: POBLACIONESy CLIENTES, ambas de tipo maestro normal con clave numrica, siendoCLIENTES histrica de POBLACIONES. A la tabla CLIENTES, que se en-cuentra jerrquicamente por debajo de la tabla POBLACIONES, se la deno-minamaestro de segundo nivel con clave numrica.

    Podemos relacionar ambas tablas como es habitual: creando POBLACIO-NES y CLIENTES y enlazndolas a continuacin, pulsando sobre el enlaza-dor de la maestra y llevando el puntero del ratn hasta la histrica. Pero Ve-lzquez nos ofrece otra posibilidad: si ya tenemos creada la tabla POBLA-CIONES y queremos crear CLIENTES, podemos usar el asistente para la

    creacin de maestros de segundo nivel con clave numrica, para lo cual enla Galera de objetos seleccionamos tabla de datos, apareciendo la ventana

    Asistente: Creacin de una tabla de datos.

    Seleccionamos Maestro 2 nivel con clave numrica y aparecer la ventanade creacin de maestro 2 nivel con clave numrica. Declaramos las pro-piedades de la tabla CLIENTES, as como las tablas maestras a las queapunta.

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Pulsamos el botn Aceptar, crendose automticamente la tabla CLIEN-TES, enlazada a su maestro POBLACIONES. En CLIENTES se ha creado uncampo de enlace por cada una de las tablas maestras apuntadas, con sundice correspondiente (Poblaciones).

    08 Desarrollo completode una aplicacin

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    34 35 VELAZQUEZ VISUAL

    Si alguna de las tablas maestras enlazadas es submaestra de otra, Velz-quez Visual genera un nuevo campo de enlace para completar el cdigo de

    enlace. De hecho, generar tantos campos de enlace como sean necesa-rios, hasta llegar al padre de una relacin Maestro - Submaestro multinivel.Vemoslo con un ejemplo:

    Ejemplo: creacin de un maestro de 2 nivel, histrico de una tabla submaestra

    Supongamos una estructura en la que la tabla POBLACIONES es sub-maestra de PROVINCIAS y sta, a su vez, es submaestra de PAISES.

    Si ahora aadimos la tabla CLIENTES, seleccionando como maestro de la

    misma POBLACIONES, en CLIENTES se crear automticamente uncampo enlazado a la tabla de PAISES, otro a la de PROVINCIAS y otro ala de POBLACIONES. Asimismo, se crea un ndice de POBLACIONES,que estar compuesto por el cdigo del pas, el de la provincia y el de lapoblacin.

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    CREACIN DE MAESTRO DE 2 NIVEL

    08 Desarrollo completode una aplicacine

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    36 37 VELAZQUEZ VISUAL

    Tambin quedan establecidos los enlaces histricos que relacionan cadauna de las tablas maestras con el Maestro de 2 nivel recin creado.

    Si ahora redefinimos la tabla CLIENTES como submaestra de POBLA-CIONES, se modificar su ndice Cdigo, aadiendo la clave de POBLA-CIONES.

    Tambin hemos de tener en cuenta la longitud del campo cdigo de la ta-bla. Por ejemplo, si cambiamos el tipo de una tabla maestra por submaes-tra, ya que la longitud del cdigo de las submaestras suele ser menor queel de las maestras.

    Cuando cambiamos una

    tabla de un tipo a otro

    hemos de ser cuidadosos

    con las propiedades del

    campo cdigo. Por ejemplo,

    al cambiar del tipo maestro

    arbolado (que tiene un

    cdigo de tipo alfanumrico)

    a cualquier otro tipo de tabla(con cdigo numrico),

    Velzquez no cambia

    automticamente el tipo,

    sino que hemos de

    cambiarlo nosotros.

    ADVERTENCIA

    PROPIEDADES DEL NDICE POBLACIONES

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    8.1.5. Histrico doble

    A la hora de disear una aplicacin es habitual encontrarse con la estructu-ra cabecera-lneas. La llamamos as ya que un ejemplo representativo se daen aplicaciones de gestin, en las que las facturas se detallan en dos tablas:CABECERAS (de las facturas) y LINEAS (de una factura), LINEAS es hist-rica de CABECERAS. Cada registro de CABECERAS guarda datos genera-les acerca de una factura, siendo histrica de CLIENTES, mientras que encada registro de LNEAS se hace referencia a un artculo, luego LINEAS eshistrica de ARTICULOS.

    08 Desarrollo completode una aplicacin

    El asistente para la creacin

    de maestros de 2 nivel slo

    aparece cuando

    seleccionamos tabla de

    datos en la Galera de

    objetos.

    ADVERTENCIAe

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    38 39 VELAZQUEZ VISUAL

    Velzquez Visual cuenta con un asistente gracias al que podemos crear di-rectamente estructuras del tipo cabecera-lneas. Para acceder a l selec-

    cionamos tabla de datos en la Galera de objetos, apareciendo la ventanaAsistente: Creacin de una tabla de datos. En ella seleccionamos Histricodoble-> Cabeceras y Lneas.

    Aparecer entonces la ventana Creacin de histrico con cabeceras y l-neas, en la que hemos de declarar el nombre de la tabla que hace las ve-ces de cabecera, en este caso FACTURAS. Tambin hemos de seleccio-nar la tabla que hace las veces de maestro de la cabecera, en este casoCLIENTES, as como el maestro de las lneas de la cabecera, en este ca-so ARTCULOS.

    El asistente para la creacin

    de histrico con cabeceras y

    lneas slo aparece cuando

    seleccionamos tabla de

    datos en la Galera de

    objetos.

    ADVERTENCIA

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Aceptamos y Velzquez nos crea el esquema que hemos presentado antes.

    El asistente ha creado automticamente los campos de enlace entre las ta-blas FACTURAS y LINEAS DE FACTURA, as como los ndices correspon-dientes. Tambin genera los campos de enlace con los maestros.

    8.1.6. Creacin de una tabla igual a una base8.1.6. de datos externa

    En un proyecto de Velzquez Visual es posible declarar Bases de datosexternas, a las que podemos hacer referencia tanto para importar comopara exportar informacin. Adems, podemos crear tablas de datos de

    Velzquez Visual con la misma estructura de campos y tipos de camposque esas bases de datos externas que hayamos declarado en el pro-yecto. Posteriormente, con ayuda de otro objeto, el Tubo de lista, po-dremos importar y exportar datos entre nuestra aplicacin y la base dedatos externa.

    Como todava no hemos visto las bases de datos externas ni los tubos, de-jaremos para ms adelante la creacin de tablas iguales a bases de datosexternas.

    ResumenLas tablas submaestras necesitan de una tabla padre para completarse, es-tando su cdigo constituido por la unin del cdigo del padre ms el suyopropio.

    Las tablas arboladas se usan para guardar registros que presentan una es-tructura arbolada, como en las distintas materias de los libros en una bi-blioteca. Gracias a ellas podemos definir el tipo al que pertenecen los re-gistros de una tabla histrica de la arbolada.

    Las tablas de tipo histrico no necesitan campo CODIGO, utilizndose pa-

    ra almacenar los registros histricos de una tabla maestra.

    Al analizar un problema es frecuente encontrarse con tablas relaciona-das por un doble plural. Para resolverlo hacemos uso de tablas de tipohistrico.

    Velzquez Visual cuenta con asistentes para la creacin de tablas maestrasde 2 nivel (tablas maestras que son histricas de otras tablas), y para lacreacin de histricos dobles (estructuras del tipo cabecera-lneas).

    En Velzquez Visual podemos declarar una tabla de datos igual a una base

    de datos externa que hayamos definido en el proyecto.

    08 Desarrollo completode una aplicacin

    Para esquemas de facturas

    con lneas, albaranes con

    lneas, etc., se suele usar

    tambin la estructura

    Maestro-Submaestro, ya

    que posibilita la cuenta y

    ordenacin de las lneas

    pertenecientes a una

    cabecera (Maestro).

    ADVERTENCIA

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    40 41 VELAZQUEZ VISUAL

    8.2 Tipos de enlaceHasta ahora hemos visto los enlaces ms sencillos: el enlace a tabla de da-tos maestra (singular y plural) y el enlace a tabla de datos esttica. En estecaptulo vamos a centrarnos en el resto de enlaces que podemos estable-cer en Velzquez Visual, y que son un poco ms complejos que los vistoshasta ahora.

    8.2.1. Asistentes para la creacin de enlaces

    Para facilitar la creacin de enlaces el editor incorpora una serie de asis-tentes que podemos ejecutar desde el men de contexto que se presentaal hacer clic con el ratn sobre el panel de estructura de datos de la Venta-

    na principal del editor de proyectos.

    En este caso la tabla que tomemos como referencia ser sobre la que ha-yamos obtenido el men de contexto.

    Tambin estar disponible en la Ventana de esquemas en el men de con-texto que se presenta al pulsar el botn derecho del ratn sobre una tabla.

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Otra posibilidad es seleccionar una tabla en el esquema y pulsar el botnCrear punteros.

    8.2.2. Enlace a hermano contiguoPermite crear un enlace a un registro de la misma tabla de datos, de modoque podemos obtener los valores de sus campos o movernos por los re-gistros a travs de un ndice determinado. En ese ndice no slo podemosindicar los campos por los que queremos establecer el orden de movimien-to, sino que tambin podemos forzar a que slo nos podamos mover porregistros que contengan un valor determinado en un campo. Desde un re-gistro podemos obtener los valores de los campos del anterior o del si-guiente, lo que podemos usar para inicializar campos, clculos a partir delvalor del registro anterior, etc. Se trata de unpuntero virtual, que no ocupa

    espacio en disco.

    Veamos con un ejemplo cmo funciona este enlace:

    08 Desarrollo completode una aplicacin

    Crear punteros

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    42 43 VELAZQUEZ VISUAL

    Ejemplo: Creacin de un enlace a hermano contiguo

    Supongamos una tabla en la que guardamos registros de personas, tenien-do cada registro los campos nombre, primer apellido y edad. Queremos quenuestra aplicacin nos d la posibilidad de fijar una edad y recorrer aque-llos registros cuyo campo edad coincida con el que nosotros hayamos fija-do. Adems queremos que la ordenacin se realice por apellido y nombre.Para ello seguimos los siguientes pasos:

    Creamos otros dos campos en nuestra tabla de datos:anteriorysiguiente,y creamos un ndice en el que aadimos los campos edad, apellido y nom-bre en el cuadro Frmula partes. El ndice podemos definirlo de tipoacep-ta repetidas, por si hay ms de una persona en la que coincidan los tres

    campos. Al ndice lo hemos llamado Hermano.

    Pinchamos en el campo siguiente y seleccionamos el enlace dentro delapartadoEnlazado? en la ventana de Propiedades de campo. En este ca-so seleccionaremos el enlace Hermano contiguo.

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Veremos cmo al seleccionar el enlace Hermano contiguo se activa el bo-tn Resolucin. Esto se debe a que hemos de indicarle a Velzquez Visualuna serie de parmetros que necesita conocer para que pueda utilizar di-cho enlace.

    Si pulsamos el botn Resolucin nos aparecer una ventana correspon-diente a la Resolucin de puntero a hermano: Las propiedades que apare-cen en dicha ventana son las siguientes:

    ndice por el cual va a realizar el enlace. En nuestro caso es el ndice quehemos llamado Hermano.

    N de partes comunes del ndice que tienen los registros a enlazar. Ser elcampo o los campos que tendrn en comn los registros por los que nosqueremos mover. En nuestro caso nos movemos por registros que tienen

    una edad fija, luego el nmero de partes comunes es uno (si quisiramos fi-jar edad y nombre, entonces sera dos). Si quisiramos movernos por los re-gistros sin fijar una edad, sino segn el orden de edad, el nmero de partescomunes sera cero.

    Direccin: Anterior/Siguiente: Marcaremos una de las dos opciones, sirvepara indicar si se enlazar con el registro anterior o con el siguiente. Ennuestro caso esta opcin determina si los registros por los que nos move-mos se ordenan por orden alfabtico de apellidos y nombre hacia la Z o ha-cia la A.

    Este proceso que hemos hecho con el campo siguiente, hemos de repetir-lo con el campo anterior, con la diferencia de que la direccin es Anterior.

    Llegados a este punto, el enlace ya est hecho. Ahora nos vamos a un for-mulario y creamos dos botones, llammoslos por ejemplo Anterior Persona

    08 Desarrollo completode una aplicacine

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    44 45 VELAZQUEZ VISUAL

    y Siguiente Persona. Para el botn Siguiente Persona, en las propiedadesdel botn le especificamos que el comando asociado al pulsar el botn sea

    moverse a hermano contiguo, y le decimos que el campo essiguiente. Re-petimos la operacin con el botn Anterior Persona, siendo en este caso elcampoanterior. De este modo, una vez que estemos viendo un registro de-terminado en el formulario, podremos movernos a los registros siguiente yanterior que coincidan en edad con la de la ficha que estemos viendo.

    Podemos agilizar el proceso de creacin de enlace a hermano usando elasistente Creacin de campo puntero: Hermano, presentndose el siguien-te cuadro de dilogo:

    En el asistente encontramos la opcin Direccin: Ambas, que nos crea losdos enlaces, anterior y siguiente, de una sola vez.

    e

    Cuestiones1. Rehacer el diseo del ejemplo anterior. Para el ndicehermano indi-

    car que el nmero de partes comunes sea cero: cmo nos move-mos por los registros?

    2. Siguiendo con el ejemplo anterior. Rehacer el ndice hermano, de modoque se componga de las partes Nombre, Apellidos y Edad (por este orden).

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    8.2.3. Singular de plural por posicin

    Permite crear un enlace singular a una tabla histrica de la tabla actual (esdecir, elegimos un solo registro entre varios, de ah singular de plural: unoentre muchos). Tendremos que elegir entre los distintos enlaces histricosdefinidos en la tabla maestra y se resolver la posicin fija del histrico conel que establecemos el enlace (de ahpor posicin).

    En el esquema, el enlace aparecer dibujado como una flecha verde.

    Por ejemplo, supongamos una aplicacin en la que tenemos la tabla ma-estra TRABAJOS y la tabla TRABAJADORES, histrica de la anterior. En latabla maestra podemos aadir un campo llamado ltimo trabajadorenla-zado a la tabla TRABAJADORES mediante un enlacesingular de plural por

    posicin.

    Para realizar este enlace basta con seleccionar el enlace Singular de pluralpor posicin y en el campo Identificadorelegir el histrico al que queremos

    08 Desarrollo completode una aplicacinIndicar que el nmero de partes comunes sea uno. De qu modo

    nos movemos por los registros?3. Tenemos una aplicacin para la gestin de presupuestos, con una tabla de

    las distintas cuentas presupuestadas (PGC) y otra de presupuestos anua-les (PRESUPUESTOS). Cmo haramos para que al crear una ficha nue-va, al elegir la cuenta presupuestada nos inicialice el campo del importecon el valor que tuvo el presupuesto de esa misma cuenta el ao anterior?Cmo haramos para que, a partir de los presupuestos del ao anterior ycon un proceso, el valor del importe sea el del ao anterior de esa mismacuenta incrementado en un tanto por ciento escogido por nosotros?

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    46 47 VELAZQUEZ VISUAL

    apuntar. Como contenido de Frmula escribimosn, que es el identificadorque Velzquez Visual da a la variable de sistemanmero de elementos de

    la lista. De este modo, desde el campo ltimo trabajador de la tabla TRA-BAJOS podremos atrapar el registro que se encuentra en la posicin n dela tabla histrica TRABAJADORES, es decir, el ltimo trabajador de la lista.

    Tambin podemos construir un enlace a hermano usando el asistente, elcual nos presenta el siguiente cuadro de dilogo en el que definir las pro-piedades del enlace:

    8.2.4. Singular de plural por ndice

    Permite crear un enlace singular a una tabla histrica de la tabla actual,usando para su resolucin el ndice utilizado en el enlace histrico. El pro-gramador nicamente tendr que resolver aquellas partes del ndice utiliza-do en enlace histrico que no sean el campo enlazado a la tabla actual. Ve-moslo con un ejemplo:

    Ejemplo: singular de plural por ndice

    Supongamos una aplicacin de gestin en la que llevamos registro de lasfacturas de nuestros clientes. Queremos saber cul es la ltima factura de

    un cliente determinado.

    Para resolver este problema necesitamos dos tablas, una maestra que lla-maremos CLIENTES, y otra histrica de la anterior que llamaremos FACTU-RAS. Al enlazar ambas tablas con un enlace a tabla maestra, en la tabla

    e

    Cuestiones1. Disear una aplicacin que lleve el registro de los ganadores de ca-

    da etapa del Tour de Francia.

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    CLIENTES se crear el histrico facturas, mientras que en la tabla FACTU-RAS se crea un campo llamado cliente, as como el ndice cliente.

    En la tabla FACTURAS vamos a aadir el campo fecha, que nos indicarcul es la fecha correspondiente a cada registro. Queremos saber cul hasido la ltima factura que le hemos hecho a un cliente determinado. Paraello aadimos el campo fecha al ndice cliente de la tabla FACTURAS.

    Una vez hecho esto, en la tabla CLIENTES aadimos un campo llamado l-tima factura. A este campo le asociamos un enlacesingular de plural por n-dice, escogemos el histrico que vamos a usar (facturas-clientes) y pincha-mos en el botn Resolucin para resolver el enlace.

    08 Desarrollo completode una aplicacine

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    48 49 VELAZQUEZ VISUAL

    Al pinchar en el botn Resolucin se muestra el enlace histrico seleccio-nado; en el apartado Resolucin partes se muestran aquellas partes del n-

    dice utilizado en el enlace histrico que el programador debe resolver. Pa-ra ello basta con hacer doble clic sobre cada una y, a travs del Asistente

    para la edicin de frmulas, establecer la frmula de su resolucin. Ennuestro caso, el ndice que usa es cliente creado por Velzquez en la tablaFACTURAS cuando hicimos el enlace a tabla de datos maestra. A ese n-dice le aadimos el campo Fecha de la factura, siendo esa fecha la parteque hemos de resolver, cosa que hacemos con el Asistente para edicinde frmulas, especificando que el contenido debe rellenarse con la funcinfHoy().

    Por ltimo, hemos de especificar el modo de bsqueda del registro histri-

    co (modo buscar), que podr ser: Igual, Igual o mayor, Igual o menor, Mayor,Menor, Primero y ltimo. En nuestro caso, como nos interesa saber la lti-ma factura, el modo de buscar ser igual o menor, ya que la fecha de la l-tima factura puede ser hoy o algn da ya pasado.

    De este modo, en el campo ltima factura de la tabla CLIENTES podemoscapturar la ltima factura que le hemos hecho a un cliente determinado.

    Como en los casos anteriores, tambin podemos crear este enlace me-diante el asistente, presentndose el siguiente cuadro de dilogo:

    Cuando entre dos tablas existe un enlace singular de plural, ste se visua-liza en el esquema de tablas como una flecha de color verde .

    e

    Cuestiones1. Trabajando sobre el esquema del ejemplo anterior, obtener la factura

    de un cliente cuyo importe sea igual o inmediatamente superior a unacantidad determinada.

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    8.2.5. Enlace a tabla de datos indirecta real

    y virtualLos punteros indirectos se utilizan para relacionar la tabla de datos en cur-so con otra tabla que no es maestra de la actual. Habitualmente se trata detablas que carecen de campo CODIGO y que por tanto no pueden ser de-finidas como maestras de otras tablas.

    Existen dos tipos de enlaces a tabla datos indirecta: el enlace indirectoreal y el enlace indirecto virtual . La diferencia entre elenlace real y virtual radica en que el primero ocupa espacio en disco y elsegundo no, es decir, el real tiene persistencia en disco y el virtual en me-moria. Adems, si es virtual no permite actualizar la tabla apuntada, ha deser un enlace indirecto real para ello.

    Veamos mediante un ejemplo cmo crear un enlace a tabla de datos indirecta.

    Ejemplo: creacin de un enlace a tabla de datos indirecta

    Con el siguiente ejemplo de gestin veremos cmo se establecen los enla-ces a tablas de datos indirectas en Velzquez Visual. Para entender esteejemplo, sepamos que al realizar una venta o una compra, la operacin sedetalla en un albarn. ste consta de una cabeza en la que se indica elcliente o el proveedor, fecha, nmero del documento, importe total, etc., yde una serie delneas de albarn, en cada una de las cuales indicamos elartculo y la cantidad, precio, descuento, importe, etc., de ste.

    En ARTCULOS cada registro hace referencia a un artculo en particularmientras que ALMACENES lleva recuento de cada uno de nuestros alma-cenes. Ambas tablas estn enlazadas por un doble plural (los artculos delalmacn, los almacenes del artculo) que resolvemos mediante una tabla de

    08 Desarrollo completode una aplicacin

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    50 51 VELAZQUEZ VISUAL

    tipo histrico, EXISTENCIAS, en la que incluiremos un campo que llevarlas existencias de un artculo en cada almacn.

    Cada vez que hacemos una venta en un almacn, sta se ver reflejada enun albarn, luego en la tabla ALBARANES llevamos recuento de todas lascabezas de albarn de un almacn en particular. Por lo tanto, ALBARANESes histrica de ALMACENES.

    Cada albarn constar de una serie de lneas en cada una de las cuales in-dicamos el nmero de artculos vendidos de cada tipo. Estas lneas seguardan en la tabla LNEAS DE ALBARANES, que lgicamente es histricade ALBARANES (las lneas del albarn).

    Por otro lado, LNEAS DE ALBARANES tambin es histrica de ARTCU-LOS, ya que un mismo artculo puede repetirse en varias lneas.

    Ahora bien: nuestro objetivo es crear en LINEAS DE ALBARANES un pun-tero enlazado a la tabla EXISTENCIAS.

    En nuestra aplicacin hemos creado una rejilla para cada tabla, formula-rios de altas, bajas y modificaciones, bsquedas completas para cada ta-bla y un men, llamado AUTOEXEC, que es el que se presenta al ejecutarel mapa.

    Adems, se han incluido botones para acceder a campos enlazados desdelos formularios de altas y modificaciones de las tablas: EXISTENCIAS, AL-BARANES y LINEAS DE ALBARAN, as como rejillas de histrico en formu-larios de modificaciones maestros.

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    La tabla EXISTENCIAS recoger las existencias de cada artculo en cada al-macn, por ello hemos aadido el campo Stockde tipo numrico, mientrasque al ndiceArtculos de la tabla EXISTENCIAS hemos aadido el compo-nentealmacenes y hemos definido como de clave nica. Esto ser necesa-rio para la resolucin del puntero indirecto desde la tabla LINEAS DE AL-BARANES.

    A la tabla de datos LINEAS DE ALBARANES hemos aadido el campo Can-tidad(numrico) para anotar las cantidades vendidas de cada artculo.

    Lo que se quiere es que, cada vez que se d de alta una nueva lnea de al-barn, se acumule en negativo el campo Stockde la tabla EXISTENCIAS,con la Cantidadde unidades anotadas en la tabla LINEAS DE ALBARANES(es decir, si en una lnea se indica la venta de dos camisetas, las existencias

    de camisetas deben reducirse en dos unidades).

    Como podemos observar en el esquema de tablas, EXISTENCIAS es unatabla histrica y no est relacionada con la tabla LINEAS DE ALBARANES,tenemos que crear un puntero indirecto que enlace las dos tablas. Para ello

    08 Desarrollo completode una aplicacine

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    52 53 VELAZQUEZ VISUAL

    aadimos un campo a la tabla LINEAS DE ALBARAN que llamaremos Pu-nexist (puntero a EXISTENCIAS). Editamos el cuadro de propiedades del

    campo y especificamos que ste debe estar enlazado a tabla de datos in-directa, siendo EXISTENCIAS el identificador de la tabla enlazada.

    Nos aparecer el siguiente mensaje: Los punteros indirectos a tablas dedatos deben ser resueltos. Para resolver el puntero, en el cuadro de pro-piedades de campo pulsamos el botn Resolucin. Como ndice de la tablaEXISTENCIAS seleccionamos ARTICULOS (el ndice al que antes aadimosel artculo del almacn).

    Tras seleccionar el ndice aparecern los campos a resolver de la tablaEXISTENCIAS. Esta resolucin la haremos desde la tabla LINEAS DE AL-BARANES. Seleccionamos el primero de los campos a resolver (Artculo), yde la lista de campos que aparece bajo el epgrafe Resolucin desde origen

    actual(lneas de albarn) pinchamos en el campo ARTICULO. Con esto leestamos diciendo que el artculo es el que aparece en el campo Artculo dela tabla LINEAS DE ALBARANES.

    Seleccionamos el segundo campo a resolver (Almacn), y de la lista decampos de EXISTENCIAS pinchamos en el campoAlbarn. Tendremos ac-ceso de este modo a los campos de la tabla ALBARANES y elegimos elcampoAlmacn (hemos seleccionado el almacn del albarn de la lnea).

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Por ltimo, en el cuadro de propiedades del campo activamos la opcin Daralta si no existe, as, si damos de alta un albarn de un almacn que con-

    tenga un artculo en las lneas que no estuviese dado de alta en la tablaEXISTENCIAS, lo crear automticamente.

    Ahora ya tenemos creado el enlace con la tabla EXISTENCIAS. ste se vi-sualiza en el esquema de tablas como una flecha ondulada queune ambas tablas.

    Para crear un puntero indirecto podemos hacer uso delasistente de crea-cin de campo puntero. Para ello hacemos clic con el botn derecho es-tando seleccionada la tabla en la que queremos crear el campo. Se pre-sentar la siguiente ventana con las propiedades del puntero.

    08 Desarrollo completode una aplicacine

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    54 55 VELAZQUEZ VISUAL

    Ya hemos comentado cmo la opcin Dar de alta si no existe permite que,si el registro con el que se ha de enlazar el registro actual no existe en la

    tabla indirecta, sea dado de alta. Si queremos que sea el propio usuario elque confirme o no el alta del registro en la tabla indirecta, seleccionamosun formulario de altas en el parmetro Formulario para dar alta. Esta op-cin no estar disponible para los enlaces virtuales, y no funcionar si al-guno de los campos a resolver en el ndice tiene valor 0 (por ejemplo, uncampo booleano cuyos valores posibles son 0 o 1); el motivo radica en quesi el campo tiene valor 0, se toma como campo vaco y, por tanto, no esresuelto.

    Si el proyecto va a ser ejecutado con la versin cliente-servidor, no esposible la especificacin del formulario de altas, el motivo es que este ti-

    po de operaciones son realizadas en el Servidor, no en el Cliente, y, si setuviese que mostrar el formulario, ste aparecera en el Servidor. Por es-te motivo, si en un enlace de este tipo se hubiese especificado la peti-cin de formulario, en tiempo de ejecucin, esta peticin sera obviadapor el Servidor.

    8.2.6. Las actualizaciones

    Se encargan de modificar el contenido de los campos de un registro de unatabla enlazada, cada vez que se produce un alta, una baja o una modifica-

    cin en la tabla de origen, donde estn definidas. Por ejemplo, desde unatabla de LINEAS DE ALBARAN (histrico) podemos actualizar el contenidodel campo STOCK de su maestro ARTICULOS.

    Se crean pulsando el botn Nueva actualizacin de la barra de he-rramientas. Al pulsarlo se muestra la ventana Actualizacin desde. En lalista desplegable Campo enlazado seleccionaremos un campo enlazadoa la tabla de datos donde se quiere actualizar. Una vez seleccionado, enel control Tabla a actualizarse mostrar el nombre de la tabla de datosque va a ser actualizada. Si el campo enlazado seleccionado fuese uncampo enlazado a unhermano contiguo, en el control Campo hermano

    contrario se mostrar el campo enlace a hermano contrario al seleccio-nado.

    Nueva actualizacin

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Los distintos componentes de actualizacin que se vayan creando se mos-trarn en el control situado bajo la barra de botones de la actualizacin. Lasfunciones de estos botones son:

    Crear un nuevo componente de actualizacin.

    Eliminar el componente de actualizacin seleccionado.

    Mover una posicin hacia arriba el componente de actualizacin selec-cionado.

    Mover una posicin hacia abajo el componente de actualizacin selec-cionado.

    Editar el componente de actualizacin seleccionado.

    Asimismo, se incluyen botones para cortar, copiar y pegar componentes deactualizacin.

    En el cuadro de dilogo Componente de actualizacin define qu campode la tabla de destino ha de ser actualizado, en funcin o no de una con-dicin, y cmo va a ser actualizado. Simplemente se definir lo que debehacerse en caso de alta, ya que el programa automticamente sabe loque se debe hacer en una baja o en una modificacin de ficha. El cuadroaparece cuando pinchamos en el botn insertar de la ventana Actualizardesde.

    08 Desarrollo completode una aplicacin

    Crear un nuevo componente

    Eliminar el componente

    Mover una posicin hacia arriba

    Mover una posicin hacia abajo

    Editar el componente

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    56 57 VELAZQUEZ VISUAL

    Cada componente de actualizacin consta de los parmetros siguientes,excepto para los enlaces a Hermanos contiguos:

    Comentarios: comentario para el diseador.

    Frmula condicin para modificar: expresin frmula condicional quedebe cumplirse para realizar la actualizacin. Disponemos del asistentede frmulas para simplificar el uso de stas.

    Campo: campo de la tabla de datos a modificar.

    Frmula: expresin frmula de donde se obtiene el contenido a actualizar.

    Modo de modificar: se refiere a cmo vamos a actuar sobre el campo amodificar. Puede ser de uno de los dos modos siguientes:

    Acumular: acumula en el campo destino el contenido del cuadro de edi-cin Frmula, siempre que se cumpla la condicin dada en el cuadro deedicin Frmula condicin para modificar.

    Absoluto: sustituye en el campo destino el contenido del cuadro de edi-cin Frmula, siempre que se cumpla la condicin dada en el cuadro deedicin Frmula condicin para modificar.

    Las actualizaciones son disparadas cuando se crean, modifican o eliminanregistros. En el caso de modificar o de eliminar registros, Velzquez Visualdeduce el tipo de modificacin que ha de realizar la actualizacin. Por ejem-plo, se puede declarar una actualizacin en la tabla de lneas de albarn deventa para que, al crear una lnea de albarn de venta, se descuenten las

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    unidades vendidas de las existencias del artculo. Al borrar una lnea del al-barn se actualizar, automticamente, las unidades de la lnea borrada a

    las existencias del artculo.

    Tambin podemos borrar un registro sin desactualizar (p. e. lneas de alba-rn con ms de 5 aos), para ello hemos de usar la funcin de Procesos Re-correr lista eliminando fichas sin desactualizar.

    Ejemplo: Creacin de una actualizacin

    Continuaremos con el ejemplo anterior, de modo que vamos a actualizar lasexistencias de un artculo (campo Stockde EXISTENCIAS) con el conteni-

    do del campo Cantidadde las lneas de venta de la tabla LINEAS DE AL-BARANES. Es decir, si en una lnea de venta se indica que la cantidad ven-dida de un artculo es de cinco unidades, el stock de ese artculo debe dis-minuir en cinco unidades. Para ello aprovechamos el puntero que hemoscreado en la tabla LINEAS DE ALBARANES.

    Nos situamos en la carpetaActualizaciones de la tabla LINEAS DE ALBA-RANES. Con la tecla Insertarnos aparecer la ventana de propiedades dela actualizacin, en la que seleccionaremos como Campo enlazado el cam-po Punexist(el campo enlazado a la tabla EXISTENCIAS).

    Pulsamos el botnAadirpara crear el componente de actualizacin, mos-trndose la ventana Componente de actualizacin. En ella especificamos:

    Comentarios: Acumula el stock de las existencias, es una explicacin dela actualizacin.

    Frmula condicin para modificar: condicin para que se produzca actuali-

    08 Desarrollo completode una aplicacin

    Tengamos en cuenta la

    siguiente nota para la versin

    cliente - servidor: no hemos

    de incluir en componentes

    de actualizacin nada que

    implique la intervencin del

    usuario, por ejemplo,

    visualizar un mensaje,mostrar un formulario, una

    pregunta, peticin de un

    dato, etc. El motivo es que

    este tipo de operaciones se

    llevan a cabo en el Servidor,

    por lo que el mensaje o el

    formulario no seran

    presentados en el Cliente,

    sino en el propio Servidor.

    Para evitar esto, el mensaje,

    formulario, etc. a presentar,

    ser obviado por el Servidor.

    ADVERTENCIA

    e

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    58 59 VELAZQUEZ VISUAL

    zacin. En este caso no habr que especificar condicin para que acumuleel stock, pues ste debe acumularse siempre que entre nueva mercanca.

    Campo: Stock(campo de EXISTENCIAS que vamos a modificar).

    Modo de modificar: acumular (pues ha de acumular las existencias de cadaartculo en cada almacn en tantas unidades como se especifica en el cam-po Cantidadde los albaranes).

    Frmula: aqu se ha de utilizar el campo de la tabla LINEAS DE ALBARAN queva a acumular el campo Stocken la tabla EXISTENCIAS. Es el campo Cantidad.

    8.2.7. Componente de actualizacin a un hermanocontiguo

    Las actualizaciones a hermano contiguo nos permiten ir recorriendo los re-gistros de una tabla que estn relacionados por un enlace de hermano con-

    e

    Cuestiones1. En el ejemplo anterior, qu diferencia hay entre el modo de modifi-

    carAcumulary Valor Absoluto?

    2. Siguiendo con el ejemplo anterior, cmo haremos para que la ac-tualizacin del campo Stock tenga lugar slo cuando la cantidad dela lnea sea superior a cinco unidades?

    3. Cmo haramos para pasar de un albarn a otro del mismo distri-buidor?

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    tiguo, de modo que podemos obtener un acumulado final con el valor de undeterminado campo de cada registro.

    Al crear la actualizacin a un enlace a Hermano contiguo, se activar elcombo box de Campo hermano contrario. En el mismo slo aparecerncampos que haya definido en esta tabla de datos que sean contrarios alcampo enlazado. Por ejemplo, si en una tabla de facturas hemos creadolos campos FACTURA-ANTERIOR y FACTURA-SIGUIENTE, enlazados ahermano anterior y siguiente, respectivamente, seleccionando como cam-po enlazado FACTURA-ANTERIOR, slo aparecer en la lista de campos aactualizar el campo FACTURA-SIGUIENTE. Cuando aadimos un compo-nente a una actualizacin de este tipo, se presentar el siguiente cuadro dedilogo:

    Los parmetros del cuadro Componente de Actualizacin son:

    Campo valor acumulable: campo numrico que contendr el valor a acu-mular de cada registro (por ejemplo, el importe total de cada una de lasfacturas).

    Campo a modificar (acumulador): campo en el que se va a acumular elvalor del campo especificado en el parmetro anterior (aqu se ira acu-mulando el total de cada una de las facturas).

    Contenido inicial del acumulador: es un control de solo lectura y muestrala frmula resultante de la especificacin de los dos campos anteriores.

    Comentarios: texto explicativo acerca de lo que realiza la actualizacin.

    En el contenido inicial del campo a modificar se crear automticamente lafrmula a ejecutar para llevar a cabo la actualizacin.

    08 Desarrollo completode una aplicacin

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    60 61 VELAZQUEZ VISUAL

    Este tipo de enlaces, con sus correspondientes actualizaciones, son muytiles en programas de contabilidad para llevar en un campo determinado

    el arrastrado de los movimientos de una cuenta.

    Ejemplo: Actualizacin a hermano contiguo

    Tenemos una aplicacin de gestin con dos tablas: CLIENTES y FACTU-RAS. Buscamos el acumulado total de los importes de las facturas.

    En la tabla FACTURAS tenemos los campos Factura-Anteriory Factura-Si-guiente, que estn enlazados a hermano contiguo y que son los que usare-

    mos para realizar la actualizacin. El campo Totalguarda el importe de ca-da factura, mientras que en el campo Total-Ventas acumularemos el total decada factura.

    Pinchamos en el botn Nueva Actualizacin , apareciendo la ventanaAc-tualizacin desde: FACTURAS. En ella especificamos que el campo enlaza-do es Factura-Siguiente y automticamente Velzquez Visual toma Factura-

    Anteriorcomo campo hermano contrario.

    A continuacin pinchamos en el botninsertar , apareciendo la ventanaComponente de Actualizacin. Como Campo valor acumulable elegimosTotal(es el importe de cada factura), el Campo a modificar (modificador) esTotal-Ventas.

    e

    Nueva Actualizacin

    Insertar

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    Pulsamos el botnAceptary en la ventanaActualizacin desde: FACTURASaparecer Total-Ventas como campo a modificar. PulsamosAceptarde nue-vo y ya tenemos terminada la actualizacin a hermano contiguo. sta apa-recer dentro de la carpetaActualizaciones de la tabla FACTURAS.

    08 Desarrollo completode una aplicacine

  • 5/21/2018 Libro de Programaci n en Velneo - Tomo II - Calidad alta.pdf

    62 63 VELAZQUEZ VISUAL

    8.2.8 Enlace a maestro de una tabla contra s misma

    En todas las ocasiones en las que hemos hablado del enlace singular-plu-ral, lo hemos establecido entre dos tablas: una histrica y otra maestra.

    Ahora bien, es posible que una misma tabla sea maestra e histrica de smisma. Vemoslo con un ejemplo:

    Supongamos una tabla que se encarga de llevar el registro de socios de unaagrupacin, de modo que para ingresar es necesario que un socio avale alsolicitante. Cuando se acepta al nuevo socio, su ficha