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
DBSETRELATION en xHarbour
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: DBSETRELATION en xHarbour
Alfonso,
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]
Fíjate si agregando el '+' te corrige el problemaAnonymous 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())
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]
Re: DBSETRELATION en xHarbour
Efectivamente faltaba el simbolo +
Ahora funciona perfectamente, muchas gracias.
Un saludo.
Alfonso Larrinaga
bsinformatica@euskalnet.net
Ahora funciona perfectamente, muchas gracias.
Un saludo.
Alfonso Larrinaga
bsinformatica@euskalnet.net