Hola Joao.
Muchas gracias por tu interes, pero igual da error que no existe el alias ListO ( o el que sea) ,
lo que significa que cuando se visualiza el preview se ha ejecutado todo el codigo de la funcion hasta el final
y la dbf ha sido cerrada, y si pulsas el boton de excel como se supone que tiene que usar los datos de la dbf esta cerrada.
No digo que sea un bug pero si se podria rediseñar el preview para que no ejecutara todo el codigo, solo lo hiciera cuando cierras
el preview
- Code: Select all Expand view
ACTIVATE REPORT oRepObr FOR IF( lSoloOpen, ListO->Cerrada = .F., .T. ) .AND. IF( lSoloClose, ListO->Cerrada = .T., .T. ) ;
.AND. IF( ListO->( ordSetFocus() ) == "CODIGO", ListO->Codigo <= cFinal, ListO->Nombre <= cFinal ) WHILE ListO->( ! Eof() )
ListO->(dbcloseArea())
No se ejecutara el ListO->(DbCloseArea()) , hasta que se cerrara el preview cosa que no ocurre actualmente.
imaginaros que en una funcion que presenta un dialogo se ejecutara todo el codigo de la funcion, en este caso no se
ejecuta el codigo a partir de ACTIVATE DIALOG ... hasta que se cierra el mismo. En el codigo de abajo la condicion de
IF lAcepta se ejecuta cuando cierras el DIALOG.
- Code: Select all Expand view
ACTIVATE DIALOG oDlg CENTERED
IF lAcepta
IF nRad == 1
IF ListO->(Ordsetfocus()) != "CODIGO"
ListO->( ordSetFocus( "Codigo" ) )
ENDIF
ELSEIF nRad == 2
IF ListO->(Ordsetfocus()) != "NOMBRE"
ListO->( ordSetFocus( "Nombre" ) )
ENDIF
cInicio := Upper( cInicio )
cFinal := Upper( cFinal )
ENDIF
// code ....
u ofrecer una solucion para en una funcion que crea un informe y abrimos la misma dbf que tenemos en el Xbrowse pero con otro
alias podamos utilizar la exportacion a Excel, creo que me explico bien. No se sino es asi me lo indicais.
Mr. Rao, como se haria eso?
Saludos
Jose.