TxBrowse - que tiene de malo - no ??

TxBrowse - que tiene de malo - no ??

Postby jcaro » Fri Dec 01, 2006 5:32 pm

Hola Foro:

1) Sigo tratando de solucionar mi problema con el uso de TxBrowse con ADO y los recordset.

Mi problema es que no se muestra nada en la ventana MDI que se crea OK, aparece la ventana vacia, sin mostrar el browse y su contenido.
El recordset oRs , tiene datos , pero no sale nada.

A alguien le funciona ??

Les adjunto parte del código, para si me pueden decir , donde puede estar mi error. La función recibe un RecordSet con datos ( oRS )

Code: Select all  Expand view  RUN

// ---------------------------------------------------------------------
Function Browse2( oRS )
// ---------------------------------------------------------------------

    Local oWinh     := NIL
    Local oBrw      := NIL   

      
   If oRS:RecordCount() > 0

         ? oRs:RecordCount()
         
      oRs:MoveFirst()
      
       DEFINE WINDOW oWinh MDICHILD FROM 0,0 to 0, 0 TITLE "Prueba de Browse" OF oWnd PIXEL 

       oBrw := TXBrowse():New( oWinH )
      
      oBrw:AddCol()
       oBrw:bStrData      := { || oRS:Fields("Nombre" ):Value }
       oBrw:cHeader       := "Nombre"
         oBrw:OnGetData       := { || oRS:Fields("Nombre" ):Value }

      oBrw:AddCol()
       oBrw:bStrData      := { || oRS:Fields("fono1" ):Value }
       oBrw:cHeader       := "FONO 1"
      oBrw:OnGetData       := { || oRS:Fields("fono1" ):Value }

        oBrw:OnGoTop        := {|| oRs:MoveFirst() }
        oBrw:OnGoBottom     := {|| oRs:MoveLast() }
        oBrw:OnBof           := {|| oRs:Bof() }
        oBrw:OnEof            := {|| oRs:Eof() }
      oBrw:OnSkip          := { | nSkip | Skipper( oRs, nSkip ) }
        oBrw:OnKeyCount    := {|| oRs:RecordCount() }

         oBrw:nMarqueeStyle       := MARQSTYLE_HIGHLROW   
         oBrw:nColDividerStyle    := LINESTYLE_RAISED         
         oBrw:nRowDividerStyle    := LINESTYLE_RAISED         
            
      oBrw:SetRDD()
      oBrw:Refresh( .t. )
      oBrw:CreateFromCode()
   
      oWinh:SetControl( oBrw )

       ACTIVATE WINDOW oWinh  VALID ( oBrw:= NIL ,.T. )
         
       oWnd:Cascade()
      oWinh:Show()
      oWinh:SetFocus()
   
   EndIf      
      
RETURN NIL



STATIC FUNCTION SKIPPER( oRs, nSkip )

    LOCAL nRec := oRs:AbsolutePosition

    oRs:Move( nSkip )

    IF oRs:EOF
      oRs:MoveLast()
   ENDIF
   
   IF oRs:BOF
      oRs:MoveFirst()
   ENDIF

RETURN oRs:AbsolutePosition - nRec



2) Mirando la clase del TXbrowse, no aparece como asignarle a una columna un campo del recordset, solo existe una DATA bStrData,
pero parece ser que acepta solo campos de DBF o Array. No se como
asignarle un campo del recordset. Faltará algo ahi ??

3) Donde se encuentra la información del método :
Code: Select all  Expand view  RUN
oBrw:CreateFromCode()


No la encuentro en los códigos fuentes , donde se crea y está ?

4) Otra cosita, si utilizo un Listbox funciona todo OK, es solo con el TXBrowse que no me funciona. A mi me gusta el TXbrowse, por eso necesito saber si funciona o no en esta situación. ?

Gracias anticipadas por cualquier ayuda, saludos.
Juan
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
jcaro
 
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm

Postby Biel EA6DD » Sat Dec 02, 2006 9:31 am

Yo utilizo xBrowse con ADO, sin ningun problema. A primera vista, tu codigo me parece correcto salvo lo siguiente que no se si es un error al escribir el mensaje.
oBrw:OnGoTop := {|| oRs:MoveFirst() }
oBrw:OnGoBottom := {|| oRs:MoveLast() }
oBrw:OnBof := {|| oRs:Bof() }
oBrw:OnEof := {|| oRs:Eof() }
oBrw:OnSkip := { | nSkip | Skipper( oRs, nSkip ) }
oBrw:OnKeyCount := {|| oRs:RecordCount() }


En lugar de OnGoTop debe ser bGoTop, etc. Tampoco es necesario que ejecutes SetRdd, pues lo unico que hace es inicializar el browse para manejo de tablas via Rdd sean DBF o Ads.
En el ultimo build de Fivewin Antonio tuvo a bien añadir una colaboracion que le envie, es el nuevo metodo SetAdo, y el codigo para utilizarlo seria el siguiente.
Code: Select all  Expand view  RUN
oBrw := TXBrowse():New( oWinH )
oBrw:SetAdo(oRs)
oBrw:CreateFromCode()
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby jcaro » Mon Dec 04, 2006 1:54 pm

Biel :

Muchas Gracias por responderme. Esto me tranquiliza, pensaba que estaba por mal camino. Te lo agradezco mucho.

Voy a bajar el ultimo build y lo probaré.

Saludos,
Juan
Juan
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
jcaro
 
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 106 guests