DO ImprimeRecibo
*.- Yo tengo un archivo PRG que se llama ImprimeRecibo
*PARAMETERS _Archivo
PRIVATE lcTextFile
lcTextFile = ''
xD = SYS(5)
_Archivo = "ReciboSalud"
lcTextFile = xd+"\TuSistema\General\"+ _Archivo +".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
RETURN
ENDPROC
** 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 "Imprimiendo, espere un momento por favor."
oexcel.DisplayAlerts = .F. && Algo asi como SET SAFETY OFF
oexcel.workbooks.Open(lcTextFile)
WITH oexcel.worksheets(1)
** Barre la tabla en el Excel
GOTO TOP
SUM Cantidad*Unitario TO nMontox
GOTO TOP
j = 9
nMonto = ALLTRIM(STR(nMontox,12,2))
nNombre = alltrim(nCli)
nLetras = ALLTRIM(numlet(nMontox))
nNotita = ALLTRIM(nObserva)
nTotCar = 0.00
.range("F04").value = nFactura
.range("C05").value = nNombre
.range("C06").value = nNit
.range("F06").value = nFecha
.range("C07").value = nNotita
SCAN ALL
cj = ALLTRIM(STR(j, 10,0))
.range("B" + cj).value = "'" +codigo
.range("C" + cj).value = descripcion
.range("D" + cj).value = cantidad
.range("E" + cj).value = unitario
IF ROUND(Cantidad * UniTario,2) > 0
.range("F" + cj).value = ROUND(Cantidad * UniTario,2)
ENDIF
nTotCar = ROUND(Cantidad * UniTario,2) + nTotCar
j = j + 1
ENDSCAN
*-Totales
.range("F19").value = nTotCar
.range("E9:F19" + cj).select()
oexcel.selection.numberformat = "#,##0.00_);[Red](#,##0.00)"
*- Explicacion
.range("C21").value = nLetras
ENDWITH
*-Impresion
oexcel.visible = .f.
oexcel.activeworkbook.printout()
oexcel.application.quit
*-Desconectar
RELEASE oexcel
WAIT CLEAR
ENDPROC
**