Hola sigo con el tema de las celdas de xbrowse, ahora lo que pretendo es que al cambiar de una celda a otra me muestro unos datos en la parte superior pero al añadir :keydown me aparece una columna más como podéis ver en la imagen, por lo demás funciona perfecto, me refresca bien los datos.
Si quito :keydown no aparece dicha columna.
He probado con :bkeydown, pero no hace nada.
Agradecería cualquier ayuda como siempre haceis.
Saludos y Feliz Año nuevo.

Adjunto tambien codigo :
Si quito :keydown no aparece dicha columna.
He probado con :bkeydown, pero no hace nada.
Agradecería cualquier ayuda como siempre haceis.
Saludos y Feliz Año nuevo.

Adjunto tambien codigo :
REDEFINE XBROWSE oBrwt ID 101 autocols;
HEADERS V_Header ;
SIZES V_ColSize ;
ARRAY tfilas CELL LINES of oDDATOS
WITH OBJECT oBrwt
:bRClicked:= {|| borrararticulo(tfilas,oBrwt,0,vestanteria) }
:bLDblClick := {|| buscararticulo(tfilas,oBrwt,0) }
:KeyDown := {|| refrescardatos(vestanteria,oBrwt,0) }
:bKeychar := {|nkey| iif(nkey=13 .and. oBrwt:nColSel > 1,buscararticulo(tfilas,oBrwt,0),)}
:nFreeze:=1
:lFullGrid := .t.
END
REDEFINE BTNBMP ID 500 RESOURCE "ACEPTAR" OF oddatos ;
ACTION (lSalva:=.t. , oddatos:End());
MESSAGE "Guardar cambios y salir del catalogo" ;
WHEN ( Acceso(oApp:aUsuarios,"ESTANTER", nActua ) )
REDEFINE BTNBMP ID 501 RESOURCE "SALIR" OF oddatos ACTION (lSalva := falso, oddatos:End()) ;
MESSAGE "Salir de Estanteria"
ACTIVATE DIALOG oDDATOS CENTER ON INIT oBrwT:SetFocus()
..........
static function refrescardatos(vestanteria,oBrw,vprofundo)
area:=select()
cdestant := OpenDbf(fdestant,1, , , , kdestant,"DBFCDX")
(cdestant)->(DbSetOrder(1))
(cdestant)->(Dbgotop())
acdestan:=select()
if vprofundo = 0
(cdestant)->(dbseek(vestanteria+transform(oBrw:nRowSel,"9999")+transform(oBrw:nColSel,"9999")+transform(1,"9999")))
if found()
vfcliente:= (cdestant)->cliente
gvfcliente:refresh()
vfnombre := (cdestant)->nombre
gvfnombre:refresh()
vfarticulo:=(cdestant)->articulo
gvfarticulo:refresh()
vfdetalle:=(cdestant)->detalle
gvfdetalle:refresh()
vfcantidad:=(cdestant)->cantidad
gvfcantidad:refresh()
else
vfcliente:= ""
gvfcliente:refresh()
vfnombre :=""
gvfnombre:refresh()
vfarticulo:=""
gvfarticulo:refresh()
vfdetalle:=""
gvfdetalle:refresh()
vfcantidad:=""
gvfcantidad:refresh()
endif
endif
(cdestant)->(Dbclosearea())
select(area)
return nil