Page 1 of 1

Relacionando 2 DBF

Posted: Tue Nov 25, 2008 1:08 pm
by Loren
Compañeros:

No logro relacionar 2 dbf. Llevo 2 horas y estoy liado.

Tengo 2 DBF:
AFORO && Dbf padre
ZONA && Dbf hija

ambas con un campo en común
ZONA,N,2,0

Indexo de la siguiente forma:

Code: Select all

 select 2 ; use aforo    alias aforo    shared
   index on tran(tendido,'##') tag TAFORO  
   index on tran(tendido,'##')+tran(zona,'##')+tran(fila,'##') tag TZFAFORO    
   index on sol+tran(tendido,'##')+sector tag TSAFORO  
   index on tran(zona,'##') tag ZAFORO
 select 7 ; use zona     alias zona     shared 
   index on tran(zona,'##') tag Nzona
Para abrir y relacionar hago lo siguiente:

Code: Select all

    select 7 ; use zona     alias zona     shared ; set index to zona
    select 2 ; use aforo    alias aforo    shared ; set index to aforo
               DBSETRELATION("zona",{|| aforo->zona},"aforo->zona")
Tal y como está hago un dbrelation() y no me devuelve nada pero todos los registros de PADRE me los muestra relacionado con el 1er. registro de HIJA. Si en el DBSETRELATION le quito las comillas a "zona", dbrelation() me devuelve la relacion pero los registros de PADRE me los muestra relacionado vacios.

¿ Como sería ? Utilizo FWH807 y xHarbour 27/June/2008
Mil gracias.
Lorenzo

yo los aplico asi con CDX o Netx

Posted: Tue Nov 25, 2008 3:59 pm
by tosko
Sele dgfolios
Set relation to idcol into colonias


Saludos

Posted: Tue Nov 25, 2008 5:18 pm
by Loren
tosko, agradezco tu sugerencia, que aunque algo escueta ya la probé y no funciona....

Seguí las indiciaciones en este foro: http://fivetechsoft.com/forums/viewtopi ... t=relation

pero sigo sin lograrlo.

A la espera de sugerencias, saluda
Lorenzo

Posted: Tue Nov 25, 2008 6:16 pm
by fergonm
Lorenzo.
Ten cuidadp con el orden de apertura de las bases de datos ya que para relacionar dos bases de datos es fundamnetal abrir primero la hija. Un ejemplo.


DbUseArea(.T.,,"Facturas")
Facturas->(DbSetIndex("I1FActur"))

DbUseArea(.T.,,"Siniestr")
Siniestr->(DbSetIndex("I1Sini"))

DbSelectArea("Facturas")

SET RELATION TO Facturas->NumControl INTO Siniestr


Un saludo. Fernando