Punteros indirectos

Punteros indirectos.

Uno de los elementos de Velneo que me parecen más potentes y que a mí me dan mucha utilidad son los punteros indirectos.

Un puntero indirecto es parecido a un puntero a maestro, ya que con él se apunta a una única ficha de otra tabla.

Pero tiene la particularidad de que la tabla Origen del puntero y la de Destino del puntero no tienen otra forma de relacionarse directamente.

Para crear un puntero indirecto, hay que tener en cuenta varias cosas_

1.      Saber de qué tabla parte el puntero, es decir la tabal Origen

2.      Saber a qué tabla ha de llegar dicho puntero, la tabla Destino.

3.      El puntero ha de resolverse en Origen pero a través de un índice de CLAVE UNICA de la tabla destino.

4.      El puntero puede servir para dos cosas: para ver un registro de la tabla Destino desde una ficha de la tabla Origen, o para actualizar o crear un registro en la tabla destino, usando las actualizaciones  y la opción “dar de alta si no existe”.

Veámoslo con un par de ejemplos.

1 Una entidad deportiva desea llevar las estadísticas de uso de sus instalaciones, de forma semanal, mensual, la afluencia de usuarios que pasan por sus tornos de entrada…

Esquema

En primer lugar creamos las tablas históricas en las que guardaremos esos datos.

Serán históricas porque no necesitamos ni campo ni índice código para ordenarlas, por tanto son históricas “puras” y no sólo en relación.

Veamos la tabla UsoInstalaciones

Usoinstalaciones

En esta tabla llevaremos los usuarios que han usado cada instalación por fecha, si las han reservado de forma presencial  (centralita) o por Internet, además de otros datos.

El índice fecha es del tipo Aceptar repetidas, pues puede haber registros con la misma fecha, pero el índice INST, es de clave única y está formado por la unión del puntero a maestro INSTALACIONES  y el campo fecha, con lo que sólo puede haber un registro por Instalación y fecha.

 

 

Con esto logramos que parte del requisito 3 esté resuelto, tengo ya un INDICE DE CLAVE UNICA.

Según vemos en el esquema de tablas, la tabla Origen será Reservas y la tabla destino            UsoInstalaciones

Al hacer una Reserva, quiero que se actualice la estadística, por eso Reservas es el Origen, puntos 1  y 2 también resueltos

Nos quedaría ahora crear el campo de tipo puntero Tabla de datos indirecta Real y resolverlo.

Creamos dicho campo

puntero

Enlazado a Tabla de Datos Indirecta (Real) y escogemos la tabla UsoInstalaci.

Marcamos el flan Dar de alta si no existe, pues así, si al resolver el puntero, la dupla a resolver INSTALACIÓN – FECHA  aún no tiene registro en la tabla UsoInstaciones , nos creará un registro en esa tabla con esos valores.

Nos queda solamente darle al botón de resolver pues este tipo de punteros no los resuelve Velneo directamente

Nos aparece un cuadro de diálogo, en la parte de la derecha los datos de la tabla destino y en la izquierda la tabla origen.

En la tabla destino, escogeremos el INDICE DE CLAVE UNICA  que hemos creado previamente, en nuestro caso INST, y en la parte inferior nos aparecerán las partes de las que está compuesto dicho índice, la Instalación y la Fecha.

Ahora nos toca resolver y la siguiente operación la debemos hacer por CADA UNA DE LAS PARTES DE LAS QUE SE COMPONE EL INDICE.

A.     parte Instalación:

                        Nos posicionamos a la Izq sobre Instalación y en la derecha (Origen) le indicaremos de dónde debemos sacar ese valor, es decir, nos posicionaremos sobre el punteo a Instalación.

B.     parte Fecha.

                        Nos posicionamos a la izq sobre la fecha, y a la derecha le indicaremos de dónde debemos sacar ese valor, es decir, nos posicionaremos sobre el campo Fecha de la Tabla Reservas.

Ya tendremos así resuelto el puntero indirecto.

resolucion

Ahora haremos una actualización desde la tabla Reservas, Campo enlazado, el puntero, y añadiremos tantos componentes de actualización como sean necesarios.

Por ejemplo en UsoInstalaciones tendremos un campo numérico para ir contando los usuarios que entraron en una instalación cada día, por tanto actualizaremos ese campo, de forma Acumular, y con valor 1, para que nos cuente un uso cada vez que entra un usuario.

Espero que esto os pueda ayudar y sacar provecho a estos punteros que a mí me resultan tan útiles y potentes, pues con ellos puedo lanzar actualizaciones y por tanto evitarme trabajo en la parte derecha del vDeveloper que debería sino suplir con procesos.

Un saludo

 

 

Anuncios

Acerca de Agustin
Velneoadicto. Tuve la grandísisma suerte de que me enseñaran los más grandes: Juan Muñoz-Cobos , Jesús Arboleya y Jesús Inclán..

One Response to Punteros indirectos

  1. Pingback: vDeveloper: vayamos por partes (y vi). Recapitulación. « Velneo: panta rei. Desde mi perspectiva

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: