RE:Reportes de VFP a Word
mm porque a Word, ? en Word lo que hago son Contratos, o alguna carte que ya tenga formato por decir algo.
Cuando es uninforme mas formal te recomiendo Excel.
PRIVATE lcTextFile
lcTextFile = ''
xD = SYS(5)
lcTextFile = xd+"\Aperson\Caribe\Sistemas\Excel\Reforma.xls"
crutinaerroractual = ON("Error")
lhuboerror = .F.
ON ERROR LHUBOERROR = .T.
oexcel = CREATEOBJECT("Excel.Application")
ON Error &cRutinaErrorActual
IF lhuboerror
nresp = MESSAGEBOX("¿Desea generar una lista sin formato?", 35,"Excel NO esta instalado en esta computadora.")
IF nresp = 6
generacsv()
ENDIF
ELSE
generahojaelectronica()
ENDIF
** Si no Existe excel Quiere mandar a un Archivo
PROCEDURE GeneraCSV
carchivo = GETFILE("Hoja excel:XLS", ;
"Archivo Excel", ;
"Grabar", 0)
IF EMPTY(carchivo)
= MESSAGEBOX("Debe seleccionar un nombre de archivo.",64, "Error")
ELSE
COPY TO (carchivo) TYPE XLS
= MESSAGEBOX("El archivo fue grabado satisfactoriamente",0, "")
ENDIF
ENDPROC
**Cominesa a Generar la Hoja
PROCEDURE GeneraHojaElectronica
WAIT WINDOW NOCLEAR NOWAIT "Generando la hoja, espere un momento por favor."
oexcel.DisplayAlerts = .T. && Algo asi como SET SAFETY OFF
oexcel.workbooks.Open(lcTextFile,,.t.)
WITH oexcel.worksheets(1)
** Tarjetas Ingresos
SELECT CuPlaCreditan
GOTO TOP
j = 1
nFila = 1
SCAN ALL
j = j + 1
cj = ALLTRIM(STR(j,10, 0))
**Nombre
.range("A" + cj).value = Cuentabanco
.range("B" + cj).value = Cta_bco
.range("C" + cj).value = fecha
.range("D" + cj).value = monto
.range("E" + cj).value = nFila
.range("F" + cj).value = Nombre
nFila = nFila + 1
ENDSCAN
ENDWITH
oexcel.visible = .T.
RELEASE oexcel
WAIT CLEAR
ENDPROC