Sie sind auf Seite 1von 14
Tutor de Punteros indirectos, reales y virtuales Tutor de Punteros indirectos, reales y virtuales 1

Tutor de Punteros indirectos, reales y virtuales

Tutor de Punteros indirectos, reales y virtuales

1

Punteros indirectos reales y virtuales

2

Puntero indirecto real

2

Esquema de tablas del tutor

2

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

4

Puntero indirecto virtual

9

Esquema de tablas del tutor

9

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

10

En resumen

14

Puntero indirecto virtual

14

Puntero indirecto real

14

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Punteros indirectos reales y virtuales Los punteros indirectos se utilizan para relacionar la tabla de

Punteros indirectos reales y virtuales

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.

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Pol. Ind. A Granxa | Rúa D Esquina paralela 3 Edif. vCenter, 36400 Porriño |

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

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Qué es y cómo se establece el puntero indirecto real Indirecto real: Este enlace se

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

Qué es y cómo se establece el puntero indirecto real Indirecto real: Este enlace se utiliza

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.

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Este enlace necesita ser resuelto manualmente por el programador; para ello se ha de usar

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

En esta propiedad es donde debemos resolver el enlace, para ello situar el foco en

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:

corresponderá con un componente del índice seleccionado: Pol. Ind. A Granxa | Rúa D Esquina paralela

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Cada componente del índice ha de ser resuelto de manera individual, es decir, debemos indicar

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,

. Una vez resueltos todos los componentes del índice, pulsar el botón

para abrirlo pulsar el botón

del índice, pulsar el botón para abrirlo pulsar el botón . Pol. Ind. A Granxa |
.
.
índice, pulsar el botón para abrirlo pulsar el botón . Pol. Ind. A Granxa | Rúa

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

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Debemos usar los valores de las líneas de albarán para resolver cuál es el registro

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.

para apuntar al registro correspondiente a la existencia. Esta actualización nos permitirá acumular la cantidad del

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.

calcular la existencia del artículo tras la operación. Pol. Ind. A Granxa | Rúa D Esquina

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

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Puntero indirecto virtual Esquema de tablas del tutor El esquema de tablas del tutor incluye

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Qué es y cómo se programa un puntero indirecto virtual Indirecto virtual: Este enlace se

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

Qué es y cómo se programa un puntero indirecto virtual Indirecto virtual: Este enlace se utiliza

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.

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Este enlace necesita ser resuelto manualmente por el diseñador; para ello se ha de usar

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Resolución: Una vez seleccionado el índice en la propiedad anterior en ésta aparecerá la lista

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:

corresponderá con un componente del índice seleccionado: Pol. Ind. A Granxa | Rúa D Esquina paralela

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

Cada componente del índice ha de ser resuelto de manera individual, es decir, debemos indicar

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,

. Una vez resueltos todos los componentes del índice, pulsar el botón

para abrirlo pulsar el botón

del índice, pulsar el botón para abrirlo pulsar el botón . En este caso, resolveremos el
.
.

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00

En resumen Puntero indirecto virtual Un precio se define para un proveedor y un artículo.

En resumen

Puntero indirecto virtual

Un precio se define para un proveedor y un artículo.

Por medio de un índice de clave única nos aseguramos de que sólo existe un registro para cada proveedor de cada artículo.

El índice debe contener los campos enlazados correspondientes al proveedor y el artículo, y ser de tipo clave única.

En una línea de pedido se obtiene el proveedor del pedido y el usuario selecciona un artículo.

Por medio del puntero indirecto virtual leemos el precio correspondiente al proveedor y el artículo seleccionados, guardando el valor del precio en el contenido inicial del campo precio.

Para ello debemos enlazar con la tabla de precios resolviendo el índice de la tabla de precios con los valores de la línea de pedido correspondientes al proveedor y el artículo.

Puntero indirecto real

Una existencia se define para almacén y un artículo.

Por medio de un índice de clave única nos aseguramos de que sólo existe un registro para cada artículo en cada almacén.

El índice debe contener los campos enlazados correspondientes al artículo y al almacén, y ser de tipo clave única.

En una línea de pedido se obtiene el almacén del pedido y el usuario selecciona un artículo.

Por medio del puntero indirecto real, lanzamos una actualización contra el registro correspondiente al almacén y el artículo seleccionados.

Para ello debemos enlazar con la tabla de existencias resolviendo el índice de la tabla de existencias con los valores de la línea de pedido correspondientes al almacen y el artículo.

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

| España Telf. (+34) 902 366 382 | Fax (+34) 902 932 324 Tutor de punteros

Tutor de punteros indirectos, reales y virtuales

Fecha de creación 17/12/2009 16:51:00