Page 1 of 1

Asignar objeto a xBrowse

PostPosted: Tue Oct 30, 2012 11:01 pm
by horacio
Tengo una aplicación que genera un informe diario con la posibilidad de visualizar informes de fechas anteriores. Para esto genero un archivo, lo escribo en disco y lo levanto con la clase TTxtFile. El objeto generado con esa clase lo muestro en un xBrowse del siguiente modo:

Code: Select all  Expand view


@ 0, 0 xBrowse oBrw Of oDlg Columns "cLine" Object oTxt Font oFont // oTxt objeto TTxtFile

 

Hasta aquí funciona perfectamente, pero cuando cambio la fecha de consulta, genero nuevamente el objeto oTxt, el xBrowse me presenta una sola linea ( la 1º ) y el documento tiene 134. Lo que no encuentro es como refrescar el xBrowse con el nuevo objeto oTxt. Si alguien sabe ?. Desde ya muchas gracias.

Saludos

Re: Asignar objeto a xBrowse

PostPosted: Thu Nov 01, 2012 11:54 am
by horacio
Estoy urgenciado por resolver este problema, sino tendré que deshechar este control. Si alguien sabe agradecería.

Saludos

Re: Asignar objeto a xBrowse

PostPosted: Thu Nov 01, 2012 1:02 pm
by FranciscoA
Hola Horacio.
Deberías mostrar más código, para ver cómo lo estás haciendo.

Con MySql, lo hago así:
Code: Select all  Expand view
oTbTemp:End()    //destruyo el objeto anterior
 oTbTemp := oServer:Query("SELECT * FROM mitabla ORDER BY fecha ;")   //creo de nuevo el objeto
 oBrw:SetMySql(oTbTemp,.f.)    //lo cargo al browse
 oTbTemp:Gotop()
 oTbTemp:Refresh()
 oBrw:Refresh()    //refresco el browse
 

Espero te pueda servir de guía.
Saludos.

Re: Asignar objeto a xBrowse

PostPosted: Thu Nov 01, 2012 2:31 pm
by horacio
Francisco, gracias por responder. He probado tu sugerencia y tampoco funciona. Hago lo mismo que tu, destruyo el objeto y lo vuelvo a generar, lo que no sé es como volverle a asignar al browse el nuevo objeto para que lo muestre. Así como para un objeto recordset lo muestro con oBrw : SetAdo( oRs), para mostrar un objeto oTxt generado por la clase TTxtFile, cual es el método ??? Espero haberme explicado. Nuevamente gracias por tu ayuda.

Saludos

Re: Asignar objeto a xBrowse

PostPosted: Thu Nov 01, 2012 7:32 pm
by Daniel Garcia-Gil
Horacio

XBrowse no soporta de forma nativa ese objeto, pero igual verifica que existan metodos de navegacion(gotop, gobottom, skip, etc), posiblemente lo este usando como un objeto "Browseable" porias intentar usar el metodo "SetoDbf( oTxt )", talvez funcione (no lo he probado)

Re: Asignar objeto a xBrowse

PostPosted: Thu Nov 01, 2012 8:19 pm
by horacio
Gracias Daniel por responder. Lo que no entiendo es que si puedo mostrar el archivo de texto con la siguiente instrucción y lo muestra perfectamente

Code: Select all  Expand view

@ 0, 0 xBrowse oBrw Of oDlg Columns "cLine" Object oTxt Font oFont
 

Se supone entonces que este control si soporta un objeto creado por la clase TTxtfile ( oTxt ). Puedo navegar perfectamente por el texto. Lo que no he encontrado es la manera de actualizar este texto. He probado con SetToDbf( oTxt ) pero lo único que me muestra es la primera linea del texto, sin embargo si imprimo el browse el archivo se imprime entero, lo mismo si lo exporto a Excel. La verdad me tiene desconcertado. Si miro el archivo .ppo he visto que la llamada a este comando es la siguiente función:

Code: Select all  Expand view

oBrw := XbrowseNew( oDlg, 0, 0,,,,,,,,, oFont,,,,, .F., oTxt,, .F.,, .F.,, .F., .F. ,, {"cLine"},,, .F., .F., .F., .F.,,,,, .F., .F. )
 


He mirado la clase para ver esta función pero no he descubierto la manera de actualizar el objeto. Llevo una semana con este problema, anteriormente utilicé la clase mget para mostrar el archivo pero me encontré también con errores ( ver enlace )

viewtopic.php?f=6&t=25030

No puedo creer que no pueda mostrar y actualizar un simple archivo de texto. Con la versión 7.12 podía hacerlo perfectamente pero desde que me actualicé a FWH 12.04 no encuentro la manera.

Saludos