Page 1 of 1

Xbrowse no mueve el puntero de registros

Posted: Tue Oct 14, 2008 6:16 pm
by Pedro
Hola a todos
En un módulo, donde se escoge el área de trabajo, tengo un xbrowse, y hasta hoy no me había percatado de que no me pone los registros de la tabla, si no que me presenta el primer registro tantas veces como registros tengo en ella. Me explico : Imaginen una tabla con 20 registros correspondientes a 20 áreas de trabajo, al entrar en la aplicación aparece esa tabla para que el usuario escoja donde va a trabajar, pues bien, en vez de presentar los 20 registros, presenta el primero de ellos 20 veces. Pensaba que se debía al índice, así que como veréis en el código, lo he generado, pero sigue lo mismo, he quitado el que al abrir la tabla se abra el índice, y sigue igual, hemirado los ejemplos del XBrowse, y no veo que tenga algo mal pero lo mismo estoy ciego y no lo veo.
Las líneas con asteriscos las he puesto y quitado mil veces y nada, todo sigue igual.
Aqui está el código

Code: Select all

  dbUSearea(.t.,"DBFCDX","EMPRESAS","EMP",.t.)
 * If !File("EMPRESAS.CDX")
    * OrdCreate("EMPRESAS.CDX","NUMERO","NUMERO")
 *    INDEX ON NUMERO TO EMPRESAS     
 * EndIf
 * EMP->(OrdListAdd("EMPRESAS.CDX"))

  dbSelectArea("EMP")

  DATABASE oDEmpr

  oDEmpr:Gotop()

 DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0, -8

 DEFINE DIALOG oDlgEmp RESOURCE "DLGINI"
 REDEFINE BITMAP oBmp ID 101 OF oDlgEmp ;
          FILENAME ".\ICONOS\EXPERT.BMP" ;
          ADJUST;
          UPDATE;
          TRANSPARENT

 oLbx := TXBrowse():New(oDlgEmp)


 oLbx:nMarqueeStyle       := MARQSTYLE_HIGHLROW
 oLbx:nColDividerStyle    := LINESTYLE_BLACK
 oLbx:nRowDividerStyle    := LINESTYLE_BLACK
 oLbx:lColDividerComplete := .t.

 oCol := oLbx:AddCol()
 oCol:bStrData  := { || oDEmpr:Empresa}
 oCol:cHeader   := "Empresa"
 oCol:oDataFont := oFont
 AADD(aCols,1)

 oCol := oLbx:AddCol()
 oCol:bStrData  := { || oDEmpr:Ejercicio}
 oCol:cHeader   := "Ejercicio"
 oCol:oDataFont := oFont
 AADD(aCols,2)

 oCol := oLbx:AddCol()
 oCol:bStrData  := { || oDEmpr:Numero}
 oCol:cHeader   := "Numero"
 oCol:oDataFont := oFont
 AADD(aCols,3)

 for nFor := 1 to len(aCols)
      oLbx:aCols[ nFor ]:blDClickData  := {|| (PonArea(oDEmpr,oLbx,oDlgEmp),oLbx:Refresh()) }
      oLbx:aCols[ nFor ]:bRClickData   := {|| (PonArea(oDEmpr,oLbx,oDlgEmp),oLbx:Refresh()) }
      oLbx:aCols[ nFor ]:bRClickHeader := {|r,c,f,o| NIL }
 next

 oLbx:SetRDD()
 oLbx:CreateFromResource(4001)
 oDlgEmp:oClient := oLbx

 ACTIVATE DIALOG oDlgEmp CENTERED ;
 ON INIT oLbx:SetFocus()


return( nil )
Vosotros veis algo anormal en él?
Uso FWH 8.04

Un saludo a todos
Pedro

Posted: Tue Oct 14, 2008 6:24 pm
by joseluisysturiz
Deberias mover el punto con el database y luego refrescar el xbrowse....prueba...sino te sirve te envio un ejem.funcionable...saludos.. :shock:

Posted: Tue Oct 14, 2008 6:30 pm
by Daniel Garcia-Gil
intenta cambiando el oLbx:SetRdd() por oLbx:SetoDbf( oDbf )

Posted: Tue Oct 14, 2008 6:30 pm
by Pedro
Debo tener el día torcido, José Luis, he leido lo que me has puesto y ........... mejor mándame el ejemplo.

Gracias
Pedro

Posted: Tue Oct 14, 2008 8:05 pm
by Pedro
Gracias mcfox, funcionó con SetoDbf(oDbf)

Pedro