FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper 驴C贸mo exportar listados DBF o Excel?
Posts: 6
Joined: Wed Nov 09, 2005 12:00 PM
驴C贸mo exportar listados DBF o Excel?
Posted: Thu Nov 10, 2005 01:06 PM

Hola :-)

Pues nada, que tengo que poder exportar los listados de mi aplicaci贸n a Excel o a una DBF (preferiblemente a Excel).

驴Alguna forma o idea?

Gracias a todos <!-- s:-) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":-)" title="Smile" /><!-- s:-) --> y un saludo
Posts: 189
Joined: Mon Nov 07, 2005 07:36 PM
驴C贸mo exportar listados DBF o Excel?
Posted: Thu Nov 10, 2005 01:18 PM

esta es mi forma ( al la vieja..... )

Function Dbf2Excel( oPadre, cFileDbf, lSQL, cOtraTabla, aOtrosCampos )
Local hExcel, oDDEs
Local Planilla, aNuevo, cCelda, xValor
Local cFileXls := Spac(250)
Local j, nRegistros, nCampos
Local cEjecut := "C:\MSOFFICE\EXCEL\Excel.Exe"
Local i := 0
Local lCerrarExcel := .F.
Local aTareas := GetTasks()
Local hStmt := 0
Local TMaes := {}
Local aResult := {}
Local nOpcion := 0
Local xCampos
Local qq := Chr(34)
MEMVAR DEFATMP

DEFAULT lSQL := .F.

If aScan( aTareas, {|x| "EXCEL.EXE" $ Upper(x) } ) > 0
* excel ya fue cargado en memoria
MsgStop(OemToAnsi("Debe cerrar Excel para realizar este proceso y luego continuar"),;
"Error de Operador")
Return NIL
EndIf

If !MsgGet( "Grabar en Archivo Excel...",;
OemToansi("Nombre de Salida (sin extension .xls)"),;
@cFileXls )
Return NIL
EndIf

cFileXls := AllTrim( cFileXls )
If File( cFileXls )
MsgStop("Nombre de archivo ya existe...","Error de Operador")
Return NIL
ElseIf Empty( cFileXls )
MsgStop("Nombre de archivo no corresponde...","Error de Operador")
Return NIL
EndIf

  • parece que esta bueno
    cFileXls := DEFATMP+"\"+cFileXls+".Xls"
    SysRefresh()

oPadre:bDdeInit := {|hWndClient, cAppName, cTopicName| MsgBeep() }
oPadre:bDdeExecute := {|hWndClient, cCommand | &(cCommand) }

DEFINE DDE oDDEs ;
SERVICE "Excel" ;
TOPIC "System"

If aScan( aTareas, {|x| "EXCEL.EXE" $ Upper(x) } ) == 0
lCerrarExcel := .T.
If ( hExcel:= WinExec( cEjecut, 8) ) < 32
If hExcel > 0
MsgStop( "Excel no cargado..." )
Return Nil
Endif
EndIf
Else
lCerrarExcel := .F.
* excel ya fue cargado en memoria
EndIf

hExcel := GetWndTask(1)
If hExcel = Nil
MsgInfo( "Programa Excel no encontrado")
Return Nil
Endif

ACTIVATE DDE oDDEs
CursorWait()

Select (cFileDbf)
COPY TO _Dbf2Xls

oDDEs:Execute("[Open(" +qq+ DEFATMP+"_Dbf2Xls.Dbf" +qq+ ")]")
oDDEs:Execute( "[Save.As(" +qq+ cFileXls +qq+ ",1)]" )

If lCerrarExcel
SendMessage( hExcel, WM_DESTROY )
EndIf
oDDEs:End()
oDDEs := Nil

CursorArrow()

Borrar( "_Dbf2Xls.dbf" )

Return NIL
//-----------------------------------

ademas viktor tomas tiene una clase re-buena para hacer conexion con excel, creo que se llama TFILEXLS.

Saludos y espero te sirva.

Julio Gonzalez V.

RANDOM S.A.

SISTEMICA S.A.
Posts: 6
Joined: Wed Nov 09, 2005 12:00 PM
OK peroooo 驴DDE?
Posted: Thu Nov 10, 2005 01:28 PM

Hola :-)

Muchas muchas gracias por la superrespuesta.
Solo una cosa 驴Que es DDE?

Un saludo :-)

Posts: 189
Joined: Mon Nov 07, 2005 07:36 PM
驴C贸mo exportar listados DBF o Excel?
Posted: Thu Nov 10, 2005 06:14 PM

de lo que entiendo es Dinamic Data Exchange, o intercambio dinamico de datos....
ahora saber que es exactamente...mmmm dificil.

se que lo hace y eso me deja tranquilo un rato.
Saludos

Julio Gonzalez V.

RANDOM S.A.

SISTEMICA S.A.
Posts: 35
Joined: Thu Oct 06, 2005 10:00 PM
驴C贸mo exportar listados DBF o Excel?
Posted: Thu Nov 10, 2005 08:24 PM

DDE = Dynamic Data Exchange.
Intercambio Din谩mico de Datos. Conjunto de especificaciones de Microsoft para el intercambio de datos y control de flujo entre aplicaciones.

Saludos

Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
驴C贸mo exportar listados DBF o Excel?
Posted: Fri Nov 11, 2005 01:40 AM

Si estas trabajando a 16 bits utiliza la FileXLS de Ramon Avenda帽o, te genera archivos XLS nativos de Excel sin necesidad de DDE ni de OLE, es mas, no necesitas tener ni siquiera excel instalado.

Saludos

R.F.
Posts: 6
Joined: Wed Nov 09, 2005 12:00 PM
OK gracias perooo :-)
Posted: Fri Nov 11, 2005 07:42 AM

OK, ya veo lo de DDE pero supongo que es necesaria una librer铆a al respecto 驴o no?

Muchisimas gracias a todos y un saludo :-)

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
驴C贸mo exportar listados DBF o Excel?
Posted: Fri Nov 11, 2005 11:15 AM

Manuel,

El DDE lo proporciona Windows automaticamente, de todas maneras, como te indica Ren茅, lo id贸neo es usar la clase de Ram贸n que te evita tener que usar DDE, tener Excel instalado, etc. Pero ambas soluciones te servir谩n.

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion