PRIVATE lcTextFile
lcTextFile = ''
xD = SYS(5)
lcTextFile = xd+"\TuCarpeta\Excel\Archivo_Excel.xls"
SELECT Integrantes
SET ORDER TO ICCC2 && CODIGO_INT
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
**Genera un Hoja
PROCEDURE GeneraCSV
carchivo = GETFILE("Hoja excel:XLS", "Libro de compras.", "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
**
PROCEDURE GeneraHojaElectronica
WAIT WINDOW NOCLEAR NOWAIT "Generando Libro Excel, Espere un momento por favor."
*oexcel.workbooks.add()
oexcel.workbooks.Open(lcTextFile,,.t.)
**DATOS PARA LA HOJA NUMERO 3 DISTRUCION
WITH oexcel.worksheets(1)
WAIT WINDOW NOCLEAR NOWAIT "Generando Hoja No. 3 Distribucion, Un momento por favor."
.range("C3").value = rCodigoBan+" "+rNomBanco
.range("E4").value = rCiclo
.range("C5").value = rDireccion
.range("E7").value = rAColocado
.range("E8").value = rAAnterior
*.range("H8").value = rAAnterior
.range("I8").value = rDistribucion
**Barre toda la Tabla
SELECT Dist_Utilidad
GOTO TOP
j = 12 &&Linia Inicial
_Orden = 1
_Nombre = ""
_Apellido = ""
_Cedula = ""
_Activida = ""
SCAN ALL
cj = ALLTRIM(STR(j, 10, 0))
SELECT Integrantes
IF SEEK(Dist_Utilidad.Integra)
_Nombre = ALLTRIM(Integrantes.Nombre_int)
_Apellido = ALLTRIM(Integrantes.Apellido_int)
_Cedula = ALLTRIM(Integrantes.Cedula_int)
_Activida = IIF(SEEK(Activieco_int,'ActividadEconomica','ICCC12'),ActividadEconomica.Nombre_ace,"ACTIVIDAD NO EXISTE")
ENDIF
.range("A" + cj).value = _Orden
.range("B" + cj).value = _Nombre
.range("C" + cj).value = _Apellido
.range("D" + cj).value = _Activida
.range("E" + cj).value = _Cedula
.range("F" + cj).value = Dist_Utilidad.TAho_Acumula
.range("G" + cj).value = Dist_Utilidad.PAho_coloca
.range("H" + cj).value = Dist_Utilidad.PGanancia
.range("I" + cj).value = Dist_Utilidad.Ganancia
.range("J" + cj).value = Dist_Utilidad.Ahorrado
.range("K" + cj).value = Dist_Utilidad.TAhorrado
j = j + 1
_Orden = _Orden + 1
SELECT Dist_Utilidad
ENDSCAN
**Totales de la hoja
ii = j - 1
cj = ALLTRIM(STR(j, 10, 0))
ci = ALLTRIM(STR(ii, 10, 0))
.range("F" + cj).value = "=SUBTOTAL(9,F12:F" + ci + ")"
.range("G" + cj).value = "=SUBTOTAL(9,G12:G" + ci + ")"
.range("I" + cj).value = "=SUBTOTAL(9,I12:I" + ci + ")"
.range("J" + cj).value = "=SUBTOTAL(9,J12:J" + ci + ")"
.range("K" + cj).value = "=SUBTOTAL(9,K12:K" + ci + ")"
oexcel.selection.font.bold = .T. &&Negrita la Lina de Totales
**Total Ultima Linea
.range("B" + cj).value = "TOTALES"
.range("B" + cj + ":B" + cj).select()
WITH oexcel.selection
.font.name = "Arial"
.font.bold = .T.
.font.size = 16
ENDWITH
**Formato de Numeros
.range("F12:K" + cj).select()
oexcel.selection.numberformat = "#,##0.00;[Red](#,##0.00);;@"
*********************MARCO**************************
.range("A12:K" + cj).select() &&Todo el Marco
**Hacer el Marco con Lineas
oexcel.Selection.Borders(5).LineStyle = -4142
oexcel.Selection.Borders(6).LineStyle = -4142
With oexcel.selection
.Borders(7).LineStyle = 1 &&Lado Izquierdo
.Borders(7).Weight = 2
EndWith
With oexcel.selection
.Borders(8).LineStyle = 1 &&Lado Arriba
.Borders(8).Weight = 2
EndWith
With oexcel.selection
.Borders(9).LineStyle = 1 &&Lado Abajo
.Borders(9).Weight = 2
EndWith
With oexcel.selection
.Borders(10).LineStyle = 1 &&Lado Derecho
.Borders(10).Weight = 2
EndWith
With oexcel.selection
.Borders(11).LineStyle = 1 &&Vertical
.Borders(11).Weight = 2
EndWith
With oexcel.selection
.Borders(12).LineStyle = 1 &&Lado Izquierdo
.Borders(12).Weight = 2
EndWith
*********************FIN MARCO**************************
ENDWITH
******************FINAL DISTRIBUCION********************
oexcel.visible = .T.
RELEASE oexcel
WAIT CLEAR
= MESSAGEBOX("La hoja fue generada satisfactoriamente.", 0, "")
ENDPROC
**