DBSETRELATION en xHarbour

Post Reply
Guest

DBSETRELATION en xHarbour

Post by Guest »

Hola amigos:

Pasando mis programas de 16 a 32 bytes, me da un problema con _ relacionados.
Os envio un fracmento de lo que quiero hacer, en FW24 + Clipper 5.3, funcion perfectamente, pero en FW+xHarbour 0.92.0, no me encuentra los datos de la tabla relacionada.

/* Asi se crearon los indices
INDEX ON CODART+CODALM TAG STK1 FOR EMPTY(LOTE) .AND. !DELETED()
INDEX ON CODALM+CODART+LOTE TAG STK2 FOR !EMPTY(LOTE) .AND. !DELETED()
*/

// Abro los archivos
dLot:=AbreDbf("LOTE","Lote")
dStk:=AbreDbf("STOCK","Stock")

// Selecciono el indice activo
(dStk)->(OrdSetFocus(2)) // Almacen + Articulo + Lote

// Creo la relacion
DBSETRELATION(dLot,{||(dStk)->CodArt+(dStk)->Lote},dStk+ ;
"->CodArt"+dStk+"->Lote")
(dStk)->(DBGOTOP())

// Pruebo a ver los resultados, pero no me localiza, ni el lote, ni la fecha
?(dLot)->Lote,(dLot)->Fecha,(dLot)->(RECNO())

Gracias de antemano por vuestra ayuda.

Un saludo
Alfonso Larrinaga
bsinformatica@euskalnet.net
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Alfonso,

Consigue una versión más actualizada de xHarbour.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Carlos Mora

Re: DBSETRELATION en xHarbour

Post by Carlos Mora »

Alfonso,
Anonymous wrote:
// Creo la relacion
DBSETRELATION(dLot,{||(dStk)->CodArt+(dStk)->Lote},dStk+ ;
"->CodArt"+dStk+"->Lote")
(dStk)->(DBGOTOP())

// Pruebo a ver los resultados, pero no me localiza, ni el lote, ni la fecha
?(dLot)->Lote,(dLot)->Fecha,(dLot)->(RECNO())
Fíjate si agregando el '+' te corrige el problema

DBSETRELATION(dLot,{||(dStk)->CodArt+(dStk)->Lote},dStk+ ;
"->CodArt+"+dStk+"->Lote")
(dStk)->(DBGOTOP())

Otra cosa: Para evitar eventuales problemas con las variables, como codeblock de la relacion usa:
cRelation:= dStk+"->CodArt+"+dStk+"->Lote"
bRelation:= &( "{||" + cFiltro + "}" )
dBSetRelation( Select( dLot ), bRealtion, cRelation )


En tu programa actual, que te devuelve dbrselect()?

Saludos[/b]
Alfonso Larrinaga

Re: DBSETRELATION en xHarbour

Post by Alfonso Larrinaga »

Efectivamente faltaba el simbolo +
Ahora funciona perfectamente, muchas gracias.

Un saludo.
Alfonso Larrinaga
bsinformatica@euskalnet.net
Post Reply