Tutor de an lisis de bases de datos en Velneo...

39
Pol. Ind. A Granxa | Rúa D Esquina paralela 3 Edif. vCenter, 36400 Porriño | Pontevedra | España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 [email protected] | www.velneo.com Tutor de análisis de bases de datos Fecha de creación 21/04/2010 9:30:00 1 Tutor de análisis de bases de datos En este tutor te introducimos en el análisis de bases de datos para aplicaciones en Velneo V7. A lo largo de distintos ejemplos te explicaremos el uso de los distintos tipos de tablas además de los tipos de enlace que podemos establecer para relacionar entre sí las tablas, viendo cómo se resuelven los supuestos propuestos por medio de la programación de la estructura de datos en los proyectos de datos de Velneo V7. Índice Tutor de análisis de bases de datos .................................................................................................... 1 Índice .............................................................................................................................................. 1 Un centro de enseñanza .................................................................................................................... 2 Facturas de un cliente ....................................................................................................................... 3 Repartos de obras de teatro .............................................................................................................. 4 Galería de arte ................................................................................................................................. 6 Gestión de un colegio........................................................................................................................ 8 Instalación de cristalería para vehículos ............................................................................................. 10 Libros y autores ............................................................................................................................... 13 Tienda de discos .............................................................................................................................. 15 Últimos pedidos de un proveedor ...................................................................................................... 17 Existencias por almacén y precios por cliente ..................................................................................... 19 Generación de tickets para un Kiosko................................................................................................. 29 Navegación por facturas ................................................................................................................... 37

Transcript of Tutor de an lisis de bases de datos en Velneo...

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

1

Tutor de análisis de bases de datos En este tutor te introducimos en el análisis de bases de datos para aplicaciones en Velneo V7.

A lo largo de distintos ejemplos te explicaremos el uso de los distintos tipos de tablas además de los tipos de enlace que podemos establecer para relacionar entre sí las tablas, viendo cómo se resuelven los supuestos propuestos por medio de la programación de la estructura de datos en los proyectos de datos de Velneo V7.

Índice

Tutor de análisis de bases de datos .................................................................................................... 1

Índice.............................................................................................................................................. 1

Un centro de enseñanza.................................................................................................................... 2

Facturas de un cliente ....................................................................................................................... 3

Repartos de obras de teatro .............................................................................................................. 4

Galería de arte ................................................................................................................................. 6

Gestión de un colegio........................................................................................................................ 8

Instalación de cristalería para vehículos .............................................................................................10

Libros y autores...............................................................................................................................13

Tienda de discos..............................................................................................................................15

Últimos pedidos de un proveedor ......................................................................................................17

Existencias por almacén y precios por cliente .....................................................................................19

Generación de tickets para un Kiosko.................................................................................................29

Navegación por facturas ...................................................................................................................37

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

2

Un centro de enseñanza

Conceptos a tratar

• Enlaces singular y plural.

• Tabla de tipo maestro normal con clave numérica.

Descripción

Realizamos el análisis de una base de datos que permitirá gestionar los alumnos y las clases a las que pertenecen en un centro de enseñanza, con la condición de que cada alumno pertenece a una clase.

Esquema de la aplicación

Este ejemplo se resuelve de forma sencilla creando dos tablas: ALUMNOS y CLASES, ambas de tipo maestro normal con clave numérica. Ahora bien: ¿Cómo las enlazamos? Para verlo hemos de enunciar las siguientes frases: “Varios alumnos pertenecen a una clase”, “Un alumno pertenece a una única clase”.

Está claro que ALUMNOS (plural) va a ser un plural de CLASES (singular), de modo que enlazaremos ambas tablas mediante un enlace singular - plural.

Al establecer el enlace, se crea automáticamente el campo Clases y el índice Clases en la tabla ALUMNOS, mientras que en la tabla CLASES se crea el plural ALUMNOS_CLASES.

NOTA: La mejor forma de organizar las tablas en un objeto Esquema es hacerlo en función de las relaciones que se establecen entre las tablas. Para ello, debemos poner por encima las tablas que sean maestras y por debajo las tablas que sean sus plurales. En el ejemplo, vemos como CLASES que es maestra de ALUMNOS está por encima.

En definitiva las flechas que indican un enlace plural (color rojo) deben apuntar hacia abajo, y las flechas que indican un enlace a maestro (color azul) deben apuntar hacia arriba.

De esta forma, la organización en árbol de las tablas se mostrará de forma más clara y podremos ver cómo se jerarquiza la información. En la parte de abajo del esquema encontraremos las tablas con más detalle y qué más información gestionan, y en la parte de arriba encontraremos los maestros, que agrupan y clasifican la información que manejamos. En esquemas con gran número de tablas esto nos será de gran ayuda.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

3

Facturas de un cliente

Conceptos a tratar

• Enlaces singular y plural.

• Tabla de tipo maestro normal con clave numérica.

Descripción

Realizamos el análisis de una base de datos que permitirá gestionar las facturas y los clientes a los que facturamos.

Esquema de la aplicación

Este caso se resuelve creando dos tablas: FACTURAS y CLIENTES, ambas de tipo maestro normal con clave numérica. Ahora bien: ¿Cómo las enlazamos? Para verlo hemos de enunciar las siguientes frases: “Varias facturas pueden ser emitidas al mismo cliente”, “Una factura sólo puede ser emitida a un cliente”.

Está claro que FACTURAS (plural) va a ser un plural de CLIENTES (singular), de modo que enlazaremos ambas tablas mediante un enlace singular - plural.

Al establecer el enlace, se crea automáticamente el campo Clientes y el índice Clientes en la tabla FACTURAS, mientras que en la tabla CLIENTES crea el plural FACTURAS_CLIENTES.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

4

Repartos de obras de teatro

Conceptos a tratar

• Enlaces singular y plural

• Doble plural

• Tabla de tipo maestro normal con clave numérica.

• Tabla histórica

Descripción

Realizamos el análisis de una base de datos que permitirá conocer las obras de teatro en las que ha participado un determinado actor como miembro del reparto.

Los actores podrán participar en el reparto de varias obras, y las obras estarán formadas por elencos compuestos por varios actores.

Esquema de la aplicación

Declararemos dos tablas principales: ACTORES y OBRAS. Tanto las obras como los personajes necesitan estar identificados uno a uno de forma inconfundible, por lo que deben tener una clave de acceso única, es decir, deben declararse como tablas de tipo maestro normal con clave numérica.

Ahora bien: ¿cómo las enlazamos? Volvemos a enunciar las dos frases: “En el reparto de una obra participan varios actores”, y en el caso más general, la segunda frase es: “Un actor puede participar en varias obras”. Esto es lo que denominamos doble plural o plural en ambas direcciones. Es decir, nos encontramos con un plural en los dos sentidos que resolvemos con una tabla histórica que haga de intermediaria: REPARTOS. Esta tabla se crea de tipo histórico ya que no es necesario que tenga un campo ID único que determine un registro de la tabla.

Estableceremos entonces un enlace singular-plural entre las tablas de ACTORES y REPARTOS, y otro enlace singular-plural entre las tablas de OBRAS y REPARTOS.

Los registros de la tabla REPARTOS consisten en parejas Obra-Actor, de manera que asociamos todas las obras con cada uno de sus actores (o visto de otro modo, todos los actores con cada una de las obras en las que aparece).

Entonces, si nos situamos en la tabla OBRAS, por ejemplo, moviéndonos hacia su plural obtendremos todos los registros Obra-Actor en los que la obra es la seleccionada de la tabla OBRAS.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

5

Una vez cargadas todas esas parejas, nos movemos hacia maestro en la dirección de ACTORES, de modo que cargamos todos los actores que aparecen en la obra.

El mismo procedimiento seguiremos para, dado un actor, obtener todas las obras en las que aparece.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

6

Galería de arte

Conceptos a tratar

• Enlace singular y plural

• Doble plural

Descripción

El siguiente esquema de tablas gestionará un galería de arte bajo los siguientes supuestos:

Un artista de la galería puede tratar distintos temas, mientras que un tema en particular puede ser tratado por distintos artistas. Además, una obra de un artista puede ser expuesta en distintas exposiciones, mientras que varias obras del artista pueden exponerse en la misma exposición.

Cada artista tiene un representante (contacto), mientras que un representante puede trabajar para distintos artistas.

Esquema de la aplicación

Comenzaremos creando las tablas ARTISTAS, TEMAS y OBRAS y enlazándolas.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

7

Tal y como se expuso el problema, entre TEMAS y ARTISTAS existe un doble plural. Para resolverlo introducimos una tabla intermedia: OBRAS. De este modo no sólo resolvemos el doble plural, sino que aprovechamos para guardar en la tabla intermedia las obras de cada artista (claro está, una obra pertenecerá a un artista y tratará un tema en particular). En la tabla OBRAS añadimos los campos Foto, Precio, Título, etc.

Las tres tablas las definimos con el tipo maestro normal con clave numérica. En este caso OBRAS también ha sido definida así (y no de tipo histórico) ya que nos interesa que cada obra tenga una clave única e irrepetible.

Creamos ahora la tabla EXPOSICIONES, en la que incluimos los campos Fecha inicio, Fecha fin, Motivo, etc. Nos encontramos entonces con otro plural en los dos sentidos entre esta tabla y OBRAS, de modo que hemos de crear otra tabla intermedia que lo solucione: OBRAS EXPUESTAS, ya que una misma obra puede presentarse en distintas exposiciones a lo largo del tiempo.

Por último, añadimos la tabla CONTACTOS, en la que guardaremos los datos de los representantes. Esta tabla es maestra de ARTÍCULOS.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

8

Gestión de un colegio

Conceptos a tratar

• Enlaces singular y plural.

• Tablas arboladas.

• Tablas estáticas.

Descripción

Realizamos el análisis de una base de datos que permitirá gestionar la organización de un colegio. Dicha aplicación debe relacionar los aspectos fundamentales de un colegio: alumnos, profesores, materias, asignaturas, cursos, secciones, aulas, días lectivos y horarios.

Esta aplicación debe responder, entre otras muchas, a consultas como: ¿cuál es el cuadro semanal de clases de un alumno?, ¿y el de un profesor?, ¿cuáles son los alumnos de un profesor?, ¿y los profesores de un alumno?, etc.

Esquema de la aplicación

Hemos de crear las tablas siguientes: ESTUDIANTES, PROFESORES, MATERIAS, ASIGNATURAS, CURSOS, SECCIONES y AULAS.

Los registros de las tablas CURSOS, ESTUDIANTES, MATERIAS, PROFESORES, AULAS y ASIGNATURAS necesitan identificarse uno a uno de forma inconfundible, de modo que las tablas han de definirse como maestras de tipo normal con clave numérica, con la salvedad de la tabla MATERIAS.

MATERIAS podría recoger, por ejemplo, el ciclo educativo, la materia en sí y el curso de impartición de una

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

9

asignatura. Para este fin son ideales las tablas arboladas, en las que el campo código se comporta del siguiente modo: el primer dígito del código actúa como dígito raíz. Cada uno de los valores que recibe el primer dígito abre nuevas ramas del árbol. De igual modo, los nuevos dígitos que añadimos al código abren nuevas subramas del árbol (por ejemplo, el código PL2 podría indicar: ciclo primario, materia literatura, 2º curso del ciclo).

Las asignaturas de un curso se definen con la materia, el profesor y el aula en que se imparten, por lo que estableceremos un enlace singular-plural con cada una de las tablas correspondientes, incluyendo la tabla CURSOS.

Las secciones en las que se divide un curso y que agrupan a los alumnos no pueden existir si no es perteneciendo a un curso, por lo que declararemos la tabla SECCIONES como submaestra de CURSOS. De esta forma, el código de una sección se formará con el código de la tabla maestra (CURSOS) y el propio código de la tabla SECCIONES.

Aún nos falta por introducir en el análisis los días lectivos y los horarios. Para ello haremos uso de dos tablas estáticas, una en la que guardaremos los días de la semana (tabla DIAS) y otra en la que cada registro indicará el

horario del colegio (tabla HORARIO) con un formato del tipo 8:15 a 9:00, 9:15 a 10:00, etc.

Una vez introducidas las tablas estáticas crearemos dos campos en la tabla ASIGNATURAS, uno llamado Día, enlazado a la tabla estática DIAS, y otro al que llamaremos Hora, enlazado a la tabla estática HORAS.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

10

Instalación de cristalería para vehículos

Conceptos a tratar

• Doble plural

• Tablas submaestras

• Tablas históricas

Descripción

Realizamos el análisis para una aplicación de gestión para una empresa que se dedica a instalar cristales en automóviles. Hemos de tener en cuenta los siguientes puntos:

• Un vehículo se identifica por una marca, una serie y un modelo. Por ejemplo: marca Opel, serie Corsa, modelo 2000.

• La empresa dispone de diversos tipos de cristales que son suministrados por distintos fabricantes.

• Un determinado tipo de cristal puede ser suministrado por más de un fabricante.

• Un tipo concreto de modelo puede tener varios tipos de cristales.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

11

Esquema de la aplicación

Empezaremos por crear las tablas MARCAS, SERIES y MODELOS, ya que éstas identifican inequívocamente a un vehículo. Está claro que una serie no puede existir sin una marca, de igual modo que un modelo no puede existir sin una serie. Es por esto que definimos la tabla MARCAS como maestro normal con clave numérica, SERIES será submaestra de MARCAS y MODELOS será submaestra de SERIES.

Al crear las tablas, se crean directamente los enlaces entre ellas por haber definido SERIES y MODELOS como submaestras: SERIES será plural de MARCAS, mientras que MODELOS será plural tanto de SERIES como de MARCAS.

Por otro lado, la empresa dispone de diversos tipos de cristales que son suministrados por diversos fabricantes. Esto justifica la creación de las tablas ARTÍCULOS y FABRICANTES.

Ahora bien, ¿cómo las enlazamos? Volvamos a enunciar las frases: “los artículos del fabricante”, “los fabricantes del artículo”. En este caso nos encontramos con un plural en los dos sentidos, lo que nos impide enlazar directamente ambas tablas mediante un enlace singular - plural.

Para resolver un doble plural creamos una tabla en medio de las otras dos. En este caso crearemos una tabla de tipo histórico que llamaremos Artículos de los fabricantes (FAB_ART).

Cada uno de los registros de la tabla FAB_ART consistirá en una pareja Artículo - Fabricante, de modo que en ella guardamos todos los artículos de cada fabricante (o de otro modo, todos los fabricantes de cada

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

12

artículo).

Entonces, dado un fabricante podemos navegar hacia sus plurales, que son todos los registros de la tabla FAB_ART, y una vez cargados éstos, obtener todos sus maestros de la tabla ARTÍCULOS. De este modo obtenemos todos los artículos del fabricante de partida. De igual modo procederíamos para obtener todos los fabricantes de un artículo.

Aún nos queda por integrar en el diseño un detalle: en un modelo pueden instalarse distintos artículos (cristales), y un cristal puede instalarse en distintos modelos. Nos encontramos de nuevo con doble plural, luego hemos de enlazar las tablas ARTÍCULOS y MODELOS mediante una tabla intermediaria de tipo histórico a la que llamaremos MOD_ART, que funciona de igual forma que la tabla FAB_ART. Como enlazamos con la tabla MODELOS, al ser ésta submaestra, nos enlaza de forma automática con MARCAS y SERIES.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

13

Libros y autores

Conceptos a tratar

• Plural finito

• Índice de múltiples claves

Descripción

• Vamos a establecer el esquema de tablas de una aplicación que gestione los libros de una librería. Para ello hemos de tener en cuenta los siguientes puntos:

• Un libro puede tener más de un autor (vamos a poner un límite de cuatro autores).

• La búsqueda de libros por autor mostrará todos los libros pertenecientes a un autor independientemente del orden en el que éste aparezca (es decir, si es el primer autor, el segundo, el tercero o el cuarto).

Esquema de la aplicación

En primer lugar está claro que hemos de crear dos tablas: AUTORES y LIBROS, ambas de tipo maestro normal con clave numérica. Ahora bien: ¿Cómo las enlazamos? Vamos a enunciar las dos frases habituales: “Un autor puede escribir varios libros” y “un libro puede ser escrito por varios autores”. Nos encontramos de nuevo con un doble plural.

Este problema podría ser resuelto creando una tabla histórica intermediaria entre AUTORES y LIBROS, pero como sabemos que un libro va a tener un máximo de cuatro autores vamos a usar otra técnica: el plural finito.

Para ello unimos las dos tablas mediante un enlace singular-plural, de igual modo que haríamos si un libro fuera escrito por un solo autor. Al establecer este enlace se crean el campo Autores y el índice Autores en la tabla LIBROS, mientras que en la tabla AUTORES crea el plural LIBROS_AUTORES.

Ahora creamos en la tabla LIBROS tres enlaces más a la tabla AUTORES, para lo cual podemos copiar en LIBROS tres veces el campo Autores, modificando posteriormente sus identificadores y descripciones.

Acabamos de crear un plural finito. Plural ya que la tabla LIBROS está enlazada varias veces a la tabla

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

14

AUTORES, y finito ya que el número de enlaces está limitado a cuatro.

A continuación editamos las propiedades del índice Autores, y en la fórmula de partes le añadimos los campos Autor 1, Autor 2, Autor 3, Autor 4, además del campo NOMBRE (que en este caso sería el Título del libro). Asignamos el tipo el tipo Múltiples claves al índice y como número de claves indicamos cuatro.

Al configurar como cuatro el número de claves, solamente buscará por las cuatro primeras partes del índice, es decir, los cuatro autores de cada libro, y ordenando por la otra parte que queda, el título del libro.

De este modo podemos realizar búsquedas de todos los libros de un determinado autor, independientemente del campo en el que se encuentre, ahorrándonos tener que realizar una búsqueda por cada campo AUTOR que hemos creado. Además, los índices de múltiples claves evitan que un autor sea dado de alta más de una vez, lo que ocurriría si un mismo autor fuera dado de alta en un libro como Autor 1 y en otro como Autor 2 y no estuviéramos usando un índice de múltiples claves.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

15

Tienda de discos

Conceptos a tratar

• Enlace singular y plural.

• Tablas arboladas.

• Tablas submaestras.

Descripción

Vamos a desarrollar un esquema de tablas que pueda organizar el material de una tienda de discos. Para ello establecemos las siguientes bases:

• Un disco va a tener un único autor (sea solista, banda, orquesta...), mientras que un autor podrá serlo de varios discos. De igual modo, un disco habrá sido editado por una sola discográfica, mientras que una discográfica editará varios discos.

• Por otro lado, un disco se incluirá en un solo género musical, mientras que en un mismo género podrán incluirse varios discos.

• Por último, un disco contendrá varias canciones, mientras que una canción pertenecerá a un disco en exclusiva.

Esquema de la aplicación

Comenzaremos creando la tabla DISCOS, de tipo maestro normal con clave numérica. En ella incluimos los campos Año, Descripción, Portada, etc. Ahora bien, en base a lo expuesto anteriormente, necesitamos las tablas siguientes:

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

16

CANTANTES, DISCOGRÁFICAS, GÉNEROS y CANCIONES.

Nos conviene definir la tabla GÉNEROS de tipo arbolado debido a la estructura de sus registros (solistas, solistas españoles, solistas españoles de los 80, solistas españoles de los 90, solistas franceses, solistas franceses de los 80, solistas franceses de los 90, etc.), mientras que las tablas INTERPRETES y DISCOGRÁFICAS serán maestras normales con clave numérica.

CANTANTES, DISCOGRÁFICAS y GÉNEROS son maestros de DISCOS.

Por último, como una canción pertenece exclusivamente a un disco, es conveniente declarar la tabla CANCIONES de tipo submaestro, siendo DISCOS su padre, ya que las canciones únicamente han de pertenecer a un disco, y así quedan numeradas.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

17

Últimos pedidos de un proveedor

Conceptos a tratar

• Enlace singular de plural por posición.

• Enlace singular de plural por índice.

Descripción

Realizaremos el análisis de una aplicación de gestión de facturas que nos permita localizar el último pedido realizado a un proveedor por fecha, y el último pedido que hayamos introducido (independientemente de la fecha) a ese mismo proveedor.

En ambos casos, esta información se obtendrá desde la ficha del proveedor ya que la resolveremos con la ayuda de la estructura de datos sin programar ningún proceso ni búsqueda.

Esquema de la aplicación

Comenzaremos creando dos tablas: PROVEEDORES y PEDIDOS. Como a un proveedor podemos haberle hecho varios pedidos, y cada pedido se realiza a un único proveedor, está claro que debemos establecer un enlace singular-plural en el que PROVEEDORES será el maestro y PEDIDOS el plural.

Al establecer el enlace, se crea automáticamente el campo Proveedores y el índice Proveedores en la tabla PEDIDOS, mientras que en la tabla PROVEEDORES crea el plural PEDIDOS_PROVEEDORES.

En la tabla de pedidos hemos de crear un campo FECHA y su índice correspondiente, que será el que nos permita obtener el último pedido por fecha.

Comenzaremos por obtener el último pedido introducido independientemente de la fecha. Para ello, crearemos un nuevo campo y le asignaremos el tipo de enlace singular de plural por posición.

Escogeremos el plural PEDIDOS_PROVEEDORES y definiremos la fórmula de resolución con la variable de sistema sysListSize, que nos devuelve la posición del último registro correspondiente al plural seleccionado, es decir, el último pedido dado de alta para el proveedor correspondiente. Este enlace nos permite mostrar cualquier dato del pedido en la ficha del proveedor.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

18

Para obtener el último pedido por fecha del proveedor debemos crear un índice en la tabla PEDIDOS que tenga como primera parte el campo PROVEEDORES y como segunda parte el campo FECHA. Usaremos ese índice para crear un nuevo campo en la tabla PROVEEDORES al que asignaremos como tipo de enlace Singular de plural por índice.

El plural para la resolución que debemos usar será el correspondiente al índice y aparecerá denominado como PEDIDOS_PROVEEDORES_FECHA. A la hora de resolver el índice usaremos la opción Último, lo que nos devolverá la última factura por fecha de ese proveedor. Al igual que en el caso anterior, este enlace nos permite mostrar cualquier dato del pedido correspondiente en la ficha del proveedor.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

19

Existencias por almacén y precios por cliente

Conceptos a tratar

• Puntero indirecto real

• Puntero indirecto virtual

• Evento de tabla (trigger)

Descripción

Realizaremos el análisis de una aplicación de gestión de ventas de artículos, en el que podemos definir existencias por almacén calculadas en cada momento, por un lado y por otro asignar precios a artículos en función del cliente.

Esquema de la aplicación

Los punteros indirectos se utilizan para relacionar la tabla de datos en curso con otra tabla que no es maestra de la actual. Habitualmente se trata de tablas que carecen de campo ID (Código) y que por tanto no pueden ser definidas como maestras de otras tablas.

Existen dos tipos de enlaces a tabla datos indirecta: el enlace indirecto real y el enlace indirecto virtual. La diferencia entre el enlace real y virtual radica en que el primero ocupa espacio en disco y el segundo no, es decir, el real tiene persistencia en disco y el virtual en memoria.

Además, si es virtual no permite actualizar la tabla apuntada, ha de ser un enlace indirecto real para ello.

Puntero indirecto real

Esquema de tablas del tutor

El esquema de tablas del tutor incluye dos tablas maestras: Almacenes y Artículos, que son tablas que tienen una relación de maestro a plural (1 a n) con Albaranes (por cada Albarán definimos un Almacén) y Líneas de albarán, que es el plural de Albaranes (por cada línea de albarán definimos un Artículo).

Para determinar las existencias de cada Artículo en cada Almacén, tenemos una tabla histórica: Existencias, que guarda un registro por cada Artículo y cada Almacén, y sólo un registro puede tener un valor para ese binomio.

Desde una línea de albarán, usaremos un puntero indirecto real para apuntar al registro correspondiente (en función del Almacén determinado en el Albarán y del Artículo seleccionado en la línea de albarán) y actualizar el valor de la existencia.

Como la tabla Existencias es de tipo histórico y no tiene campo ID, no puede ser maestra de la tabla de Líneas de Albarán.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

20

Es necesario establecer un puntero indirecto de tipo real, ya que vamos a usar actualizaciones para escribir el valor, y éstas necesitan persistencia en disco. No podemos usar un puntero indirecto virtual en este caso.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

21

Qué es y cómo se establece el puntero indirecto rea l

Indirecto real:

Este enlace se utiliza para relacionar la tabla de datos actual con otra tabla que no es maestra de la actual y que se elige en la propiedad Tabla enlazada. En este caso, desde una línea de albarán queremos actualizar la existencia, por lo que seleccionamos la tabla Existencias.

Este enlace necesita ser resuelto manualmente por el programador; para ello se ha de usar un índice de clave única de la tabla a enlazar.

Índice: En esta propiedad tendremos que seleccionar, de la lista de índices que se muestran de la tabla enlazada, el índice de clave única que queramos usar para resolver el enlace. Usaremos el índice Almacenes de la tabla Existencias, al que hemos añadido como componente el campo Artículo, configurando el índice como de clave única. De esta forma garantizamos que únicamente habrá un registro por cada pareja de valores, de Almacén y Artículo, y desde las líneas de albarán apuntaremos a un único registro.

Resolución: Una vez seleccionado el índice en la propiedad anterior en ésta aparecerá la lista de campos que lo componen:

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

22

En esta propiedad es donde debemos resolver el enlace, para ello situar el foco en la misma y pulsar el botón que aparece a la derecha. Al pulsarlo se desplegará una ventana en la que cada fila se corresponderá con un componente del índice seleccionado:

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

23

Cada componente del índice ha de ser resuelto de manera individual, es decir, debemos indicar al sistema qué dato resuelve cada campo componente del índice de la tabla indirecta. Dicha resolución será definida mediante una fórmula. Para la introducción de la misma se dispone del asistente para edición de fórmulas, para abrirlo pulsar el botón .

Debemos usar los valores de las líneas de albarán para resolver cuál es el registro de la tabla Existencias con el que queremos enlazar. Para ello usamos el valor del Almacén que obtenemos del Albarán y el Artículo de la propia línea de albarán.

Este puntero será el que usemos en la actualización para apuntar al registro correspondiente a la existencia.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

24

Esta actualización nos permitirá acumular la cantidad del artículo que definamos en tiempo de ejecución para la línea de albarán en curso, y que permitirá calcular la existencia del artículo tras la operación.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

25

Puntero indirecto virtual

Esquema de tablas del tutor

El esquema de tablas del tutor incluye dos tablas maestras: Proveedores y Artículos, que son tablas que tienen una relación de maestro a plural (1 a n) con Albaranes (por cada Albarán definimos un Proveedor) y Líneas de albarán, que es el plural de Albaranes (por cada línea de albarán definimos un Artículo).

Para determinar el precio de cada Artículo y cada Proveedor tenemos una tabla histórica: Precios, que guarda un registro por cada Artículo y cada Proveedor, y sólo un registro puede tener un valor para ese binomio.

Desde una línea de albarán, usaremos un puntero indirecto virtual para apuntar al registro correspondiente (en función del Proveedor determinado en el Albarán y del Artículo seleccionado en la línea de albarán) y leeremos el valor del precio.

Como la tabla Precios es de tipo histórico y no tiene campo ID, no puede ser maestra de la tabla de Líneas de Albarán.

Para ello usaremos un puntero indirecto de tipo virtual, ya que únicamente vamos a leer un dato y no requiere escritura alguna.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

26

Qué es y cómo se programa un puntero indirecto virt ual

Indirecto virtual:

Este enlace se utiliza para relacionar la tabla de datos actual con otra tabla que no es maestra de la actual y que se elige en la propiedad Tabla enlazada. En este caso queremos enlazar con la tabla Precios.

Este enlace necesita ser resuelto manualmente por el diseñador; para ello se ha de usar un índice de clave única de la tabla a enlazar. Este enlace no tiene persistencia en memoria. El resto de las propiedades a cumplimentar son:

Índice: En esta propiedad tendremos que seleccionar, de la lista de índices que se muestran de la tabla enlazada, el índice de clave única que queramos usar para resolver el enlace. En este caso hemos creado el índice Artículos, compuesto por el campo Artículos y el campo Proveedores, de clave única, por lo que por cada Artículo tendremos un Precio por Proveedor.,

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

27

Resolución: Una vez seleccionado el índice en la propiedad anterior en ésta aparecerá la lista de campos que lo componen:

En esta propiedad es donde debemos resolver el enlace, para ello situar el foco en la misma y pulsar el botón que aparece a la derecha. Al pulsarlo se desplegará una ventana en la que cada fila se corresponderá con un componente del índice seleccionado:

Cada componente del índice ha de ser resuelto de manera individual, es decir, debemos indicar al sistema qué dato resuelve cada campo componente del índice de la tabla indirecta. Dicha resolución será definida

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

28

mediante una fórmula. Para la introducción de la misma se dispone del asistente para edición de fórmulas, para abrirlo pulsar el botón .

En este caso, resolveremos el Artículo con aquél seleccionado en la Línea de Albarán y el Proveedor que hemos definido en la cabecera de Albarán.

NOTA: Para que en en ejecución se genere en enlace, es necesario que se resuelvan todos los componentes del mismo, es decir, que no esté vacío ninguno de los campos usados en su resolución.

La diferencia entre un enlace indirecto real y uno indirecto virtual radica en que el primero ocupa espacio en disco y el segundo no, es decir, el real tiene persistencia en disco y el virtual en memoria. Además, tampoco podrán dispararse actualizaciones desde una tabla cuando el enlace indirecto es virtual.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

29

Generación de tickets para un Kiosko

Conceptos a tratar

• Actualizaciones.

Descripción

En nuestro quiosco vendemos una serie de artículos, de modo que cada artículo pertenece a una sola marca, mientras que a cada marca pertenecen distintos artículos. Además, cada artículo nos lo surte un solo proveedor, mientras que cada proveedor nos surte de más de un artículo. Por otro lado, cada marca es surtida por varios proveedores, mientras que cada proveedor nos surte varias marcas.

Para cada artículo especificaremos cuál es su IVA entre dos valores posibles que hay para este impuesto y qué cantidad tenemos de cada artículo.

También queremos llevar un recuento de los tickets de venta, cada uno con sus correspondientes líneas de venta, de modo que en cada línea del ticket indicaremos el artículo al que se refiere, la cantidad de artículos vendidos, el importe total con IVA y el importe total sin IVA.

Queremos que el stock o existencia de un artículo se actualice con la cantidad vendida, que aparece en la línea. Es decir, si una línea refleja la venta de tres artículos, el stock del artículo debe disminuir en tres unidades.

También queremos el valor acumulado de los importes sin IVA de las líneas con IVA 1 de un ticket, así como el valor acumulado de los importes sin IVA de las líneas con IVA 2 del mismo ticket (IVA 1 e IVA 2 son los dos posibles valores para el IVA).

Otra cosa que nos interesa es saber el número total de líneas que hay en un ticket. También necesitamos obtener la suma de los importes con IVA de todas las líneas de un ticket, que será el importe total del ticket.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

30

Esquema de la aplicación

Para resolver la primera parte de la aplicación vamos a crear las tablas ARTÍCULOS, PROVEEDORES y MARCAS, las tres de tipo maestro normal con clave numérica. Ahora bien: ¿cómo las enlazamos? Sabemos que cada artículo pertenece a una sola marca, mientras que a cada marca pertenecen distintos artículos, luego ARTÍCULOS es plural de MARCAS. De igual modo, cada artículo nos lo surte un solo proveedor, mientras que cada proveedor nos surte de varios artículos, luego ARTÍCULOS también es plural de PROVEEDORES.

Por otro lado, un proveedor nos surte de distintas marcas y una marca es surtida por distintos proveedores, de modo que hay un doble plural entre MARCAS y PROVEEDORES, que resolveremos

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

31

mediante una tabla de tipo histórico que haga de intermediaria: DISTRIBUCIONES.

En la tabla ARTÍCULOS hemos de añadir el campo Stock para llevar las existencias de cada artículo. También incluimos el campo IVA, cuyo contenido deberá decidir el usuario entre los dos valores de IVA posibles y que obtenemos de sendas variables globales.

Otros dos campos más a incluir son PVSI (precio de venta sin IVA) y PVP (precio de venta al público, con IVA). El campo PVSI se calcula a partir de PVP y de IVA.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

32

Añadiremos a continuación las tablas que faltan, referidas a los tickets y a sus líneas. Éstas van a ser dos: TICKETS, que viene a ser la cabecera del ticket y que contiene datos generales como la fecha o el total, y TICKETS_LIN, en la que cada registro hace referencia a una línea de venta de un ticket. Cada ticket contiene varias líneas, mientras que cada línea pertenece a un solo ticket, de modo que TICKETS es plural de TICKETS.

Por otro lado, en cada línea de ticket aparece un solo artículo, mientras que cada artículo puede aparecer en muchas líneas de ticket, luego LINEAS DE TICKET es plural de ARTICULOS.

Además, como cada línea de ticket pertenece exclusivamente a un ticket, creamos la tabla TICKETS de tipo submaestro, siendo su padre TICKETS, la cual es maestro normal con clave numérica.

En la tabla TICKETS_LIN incluimos los siguientes campos:

El campo IVA tiene como contenido inicial el valor del IVA del artículo que aparece en la línea: #ARTICULO.IVA, lo mismo para el campo PVP con el valor del PVP del artículo. El campo PVSI se calcula para cada línea a partir de los valores de los campos IVA y PVP de la línea.

Los campos Importe con IVA e Importe sin IVA se calculan multiplicando PVP*Cantidad y PVSI*Cantidad, respectivamente, donde Cantidad guarda el número total de artículos vendidos que aparece en la línea.

Veamos ahora los campos que hemos incluido en la tabla TICKETS:

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

33

IVA1 es un campo al que pasamos como valor inicial el contenido de la variable $IVA1.

Debemos recordar que los artículos admiten dos posibles valores para el IVA, de modo que al dar de alta un artículo elegiremos entre uno u otro. Si elegimos el primer valor, éste se guarda en la variable $IVA1, si seleccionamos el segundo se guarda en $IVA2.

Lo mismo ocurre para IVA2 e $IVA2. BASE1 es un campo cuya finalidad es la de acumular el Importe sin IVA de todas las líneas de un ticket cuyo artículo tenga IVA1, mientras que en BASE2 acumularemos el Importe sin IVA de todas las líneas de un ticket cuyo IVA sea IVA2.

En el campo Total sumaremos el valor del campo Importe con IVA de todas las líneas de un ticket, mientras que en el campo Líneas guardaremos el número total de líneas que componen un ticket.

Estas modificaciones en los campos de las tablas ARTÍCULOS y TICKETS que han de hacerse en función del contenido de los campos de la tabla TICKETS_LIN las realizaremos mediante actualizaciones.

La primera actualización es la del campo Stock de la tabla ARTICULOS. Para ello abrimos la tabla TICKETS_LIN y seleccionamos el campo enlazado Artículos, pulsando la opción de creación de actualización a continuación. Creamos un componente de actualización en el que definimos que el campo a modificar es el Stock de la tabla ARTÍCULOS. Seleccionamos como modo Acumular, y la fórmula es -#CANTIDAD.

De este modo restamos al contenido del campo Stock el valor del campo Cantidad de la línea, es decir, restamos el número de artículos vendidos. La actualización se encargará de gestionar las modificaciones que realicemos en las líneas de las cantidades, tanto si modificamos el valor de la cantidad como si eliminamos el registro completo.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

34

Nos quedan cuatro actualizaciones. Como las cuatro van contra la tabla TICKETS, el campo enlazado es Tickets. En la primera acumulamos el valor del campo Importe sin IVA de la tabla TICKETS_LIN en el campo Base1 de la tabla TICKETS, con la condición de que el IVA del artículo de la línea sea igual al contenido del campo IVA1 de la tabla TICKETS.

La segunda actualización a TICKETS, la referente al la segunda base, se define de igual forma, pero en este caso ha de coincidir con el segundo valor del IVA.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

35

La tercera actualización a TICKETS consiste en Acumular el contenido del campo Importe con IVA de todas las líneas de la tabla TICKETS_LIN en el campo Total de la tabla TICKETS.

La última actualización consiste en acumular el valor 1 en el campo Líneas de la tabla TICKETS, de modo que por cada línea de la tabla LINEAS DE TICKETS se irá sumando una unidad, resultando al final el número total de líneas que hay en un ticket.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

36

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

37

Navegación por facturas

Conceptos a tratar

• Puntero a hermano contiguo.

Descripción

En nuestra facturación, una vez abierta una factura, queremos poder navegar a otras facturas siguiendo los siguientes criterios:

• Anterior y siguiente factura por código.

• Anterior y siguiente factura por fecha.

• Anterior y siguiente factura del mismo cliente por fecha.

• Anterior y siguiente factura del mismo cliente y de la misma fecha.

Esquema de la aplicación

Comenzamos con un esquema básico de FACTURAS y CLIENTES, ambas de tipo maestro normal con clave numérica. Ahora bien: ¿Cómo las enlazamos? Para verlo hemos de enunciar las siguientes frases: “Varias facturas pueden ser emitidas al mismo cliente”, “Una factura sólo puede ser emitida a un cliente”.

Está claro que FACTURAS (plural) va a ser un plural de CLIENTES (singular), de modo que enlazaremos ambas tablas mediante un enlace singular - plural.

Al establecer el enlace, se crea automáticamente el campo Clientes y el índice Clientes en la tabla FACTURAS, mientras que en la tabla CLIENTES crea el plural FACTURAS_CLIENTES.

Ahora debemos establecer la navegación de una factura a otra. Como todos los enlaces, hacen uso de un índice, siendo esto lo primero que hemos de definir.

Para la navegación por número de factura ya tenemos el índice necesario, el índice ID, por lo que únicamente hemos de hacer será crear dos campos, ID_ANT e ID_SIG y definirlos como enlaces de tipo Hermano contiguo. Elegiremos el índice ID, dejaremos las partes comunes a 0 y elegiremos la Dirección correspondiente: Anterior o Siguiente.

De esta forma, la ficha se encontrará enlazada con el registro anterior por código y con el siguiente registro existente por código.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

38

Para poder acceder a la ficha anterior por fecha, en vez del índice ID, hemos de usar el índice correspondiente al campo fecha. De igual forma que habíamos configurado los enlaces a hermano contiguo, en esta ocasión usaremos el índice FECHA para enlazar con el anterior y el siguiente registro. De nuevo, las partes comunes serán 0.

Para enlazar con la factura anterior o siguiente del mismo cliente por fecha, debemos usar un índice que contenga ambos campos como partes del índice, primero debe tener el campo CLIENTES y como segunda parte el campo FECHA. Para ello podemos crear un nuevo índice o añadir una nueva parte al índice CLIENTES ya existente.

Cuando definamos el enlace de tipo hermano contiguo, además de seleccionar el índice CLIENTES debemos definir una parte común. De esta forma, el enlace se realizará con aquel registro que tenga el mismo cliente en común con la ficha de partida, navegando de un registro a otro según la fecha de la ficha. Cuando ya no existan más facturas del mismo cliente, bien hacia adelante o bien hacia atrás en el tiempo, no permitirá continuar con la navegación.

Pol. Ind. A Granxa | Rúa D Esquina paralela 3

Edif. vCenter, 36400 Porriño | Pontevedra | España

Telf. (+34) 902 366 382 | Fax (+34) 902 932 324

[email protected] | www.velneo.com

Tutor de análisis de bases de datos

Fecha de creación 21/04/2010 9:30:00

39

Si queremos que, además de navegar por las fichas que tengan el mismo cliente, lo hagan por las fichas que tengan la misma fecha, hemos de configurar los hermanos contiguos con tantas Partes comunes, como campos que queramos equivalentes. En este caso serán dos partes comunes: Clientes y Fecha.

Usaremos de nuevo el índice CLIENTES la que habíamos añadido la parte FECHA. De esta forma, el enlace se realizará con aquel registro que tenga el mismo cliente y la fecha en común con la ficha de partida, navegando de un registro a otro según el orden de creación de los registros. Si queremos definir otro orden, nos basta añadir otra parte al índice que determine el orden.

En los controles Botón del objeto Formulario encontraremos el comando Hermano contiguo que nos permitirá desde un formulario de una ficha acceder al siguiente registro o al anterior según el enlace que definamos en el comando. Así, podremos definir tantos botones como enlaces a hermano contiguo que hemos creado en la tabla.