Relacionar dos tablas para usarlas en FORM

797 views
Skip to first unread message

Ernesto Leiva

unread,
Nov 15, 2012, 9:53:33 AM11/15/12
to publice...@googlegroups.com

Buenas a todos nuevamente.
Yo estoy retomando el tema de las relaciones en VFP ya años no programaba, estoy en cero.

Lo que deseo lograr es lo siguiente:

Relacionar la TABLA1 (Habitaciones) con la TABLA2 (HUESPED) a travez de un campo en comun: IDHUESPED,
El proposito de relacionarlas es poder usar esta relacion en los FORM y REPORT FORM.

¿Donde debo crear la relacion?
¿Permanente desde la Base de Datos? no creo.
¿Con SET RELATION en algun metodo del ENTORNO DE DATOS?

La imagen adjunta esta definida desde la Base de Datos y ya tengo claro que este tipo de ralacion
no mueve los punteros en las tablas. Solo es para Integridad Referencial de Datos.

Se como se usa el SET RELATION entre las dos tablas.
Mi pregunta es ¿DONDE DEBO CREAR EL SET RELATION U OTRA TECNICA PARA TENER LAS DOS TABLAS RELACIONADAS?

Espero darme a entender los que deseo lograr.

GRACIAS A TODOS.

Relacion.jpg

Edgar Acevedo

unread,
Nov 15, 2012, 10:01:13 AM11/15/12
to publice...@googlegroups.com
En el evento INIT del formulario, podría ser una opción para poner allí tu relación (hay otras opciones, por ejemplo el DATA ENVIRONMENT).

En propiedades del Formulario busca el evento  INIT y allí agregas el siguiente código:

Si solo hubiera un huesped por cada habitación (es una relacion de "uno a uno"):

CLOSE TABLES
USE Habitaciones IN 0 SHARED
USE Huespedes IN 0 SHARED ORDER IDHuesped
SELECT Habitaciones
SET RELATION TO IDHuesped into Huespedes


Si hubieran varios huespedes por cada habitación (es una relación de "uno a varios"):

CLOSE TABLES
USE Habitaciones IN 0 SHARED
USE Huespedes IN 0 SHARED ORDER IDHuesped
SELECT Habitaciones
SET RELATION TO IDHuesped into Huespedes
SET SKIP TO Huespedes

De seguro otros colegas del foro te sugerirán otras soluciones prácticas y hasta sorprendentes.

Salu2,


Edgar Acevedo.




--
 
 
 

Reply all
Reply to author
Forward
0 new messages