DBSETRELATION en xHarbour

DBSETRELATION en xHarbour

Postby Guest » Thu Oct 13, 2005 3:31 pm

Hola amigos:

Pasando mis programas de 16 a 32 bytes, me da un problema con los campos 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
Guest
 

Postby Antonio Linares » Fri Oct 14, 2005 10:23 am

Alfonso,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: DBSETRELATION en xHarbour

Postby Carlos Mora » Fri Oct 14, 2005 11:02 am

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]
Carlos Mora
 

Re: DBSETRELATION en xHarbour

Postby Alfonso Larrinaga » Mon Oct 17, 2005 2:08 pm

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

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 17 guests