by Armando Picon » Fri Sep 16, 2011 12:44 am
:Gracias Dario y Enrique
Pude enviar los datos de una tabla directamente a Excel sin mucha complicacion gracias a TExcelScript. los "defectillos" son que los datos aparecen en la Hoja Electrónica de forma lenta. No he podido comprobar si se requiere tener instalado el MS-excel, pero como digo, son solamente cosas que no creo molesten mucho al cliente.
Esta es la rutina que escribi para este tema:
#include "fivewin.ch"
* Usando TEXCELSCRIPT
FUNCTION Cierre2XLS(dFecha)
Local cAlias := SELECT()
LOCAL xlsFile := oApp:Pathwork + "\" + DTOS(dFecha)+".XLS" //donde voy a grabar el archivo excel
Local oExcel
Local nRow, nCol, N := 1
Local aHeads := {}
*
Local nIMPORTE := 0 // VALOR FACTURA
Local nPENDIENTE := 0 // PENDIENTE INICIA
Local nACUENTA := 0 // PAGOS A CUENTA
Local nSALDO := 0 // SALDOS
*
oExcel := TExcelScript():New()
oExcel:create(xlsFile)
oExcel:visualizar(.T.)
*
* Cabeceras de columna
AADD( aHeads, "TIENDA") // NUMERO DE TIENDA
AADD( aHeads, "OT No.") // NUMERO DE TRANSACCION - NUMERO OT
AADD( aHeads, "CLIENTE") // ID DE CLIENTE
AADD( aHeads, "SERVICIO") // TIPO DE SERV.
AADD( aHeads, "IMPORTE") // VALOR FACTURA )
AADD( aHeads, "PENDIENTE") // PENDIENTE INICIAL
AADD( aHeads, "A CUENTA") // PAGOS A CUENTA
AADD( aHeads, "SALDO") // SALDOS
AADD( aHeads, "H.RECEP") // HORA DE RECEPCION
AADD( aHeads, "F.ENTR.") // FECHA DE ENTREGA
AADD( aHeads, "H.ENTR.") // HORA DE ENTREGA
AADD( aHeads, "ENTR. EN") // ID DE ENTREGA=01->TIENDA / 02->DOMICILIO
*
oExcel:Say( 1, 1, "CIERRE DE OPERACIONES - "+DTOS(dFecha),"Tahoma", 25, .T.,,,,,)
nRow := 2
for n=1 to LEN(aHeads)
oExcel:Say( nRow, N, aHeads[N],,,.T.,,,7,,)
next N
*
oExcel:borders("A2:L2",nRow,N,1)
nRow++
DO WHILE ! EOF()
*
oExcel:Say( nRow, 1 , (cAlias)->NUMTIEND,,,,,,7,,)
oExcel:Say( nRow, 2 , IIF( VALTYPE( (cAlias)->NUMTRANS)<>"C", ;
TRANSFORM( (cAlias)->NUMTRANS, "999999"),(cAlias)->NUMTRANS),,,,,,7,,)
oExcel:Say( nRow, 3 , (cAlias)->ID_CLIEN,,,,,,7,,)
oExcel:Say( nRow, 4 , (cAlias)->ID_SERVI,,,,,,7,,)
oExcel:Say( nRow, 5 , (cAlias)->VALFACTU,,,,,,7,,)
oExcel:Say( nRow, 6 , (cAlias)->COB_PEND,,,,,,7,,)
oExcel:Say( nRow, 7 , (cAlias)->COB_CNTA,,,,,,7,,)
oExcel:Say( nRow, 8 , (cAlias)->COB_SALD,,,,,,7,,)
oExcel:Say( nRow, 9 , (cAlias)->HR_RECEP,,,,,,7,,)
oExcel:Say( nRow, 10, (cAlias)->FECENTRE,,,,,,7,,)
oExcel:Say( nRow, 11, (cAlias)->HR_ENTRE,,,,,,7,,)
oExcel:Say( nRow, 12, (cAlias)->ID_ENTRE,,,,,,7,,)
*
nIMPORTE += (cAlias)->VALFACTU // VALOR FACTURA
nPENDIENTE += (cAlias)->COB_PEND // PENDIENTE
nACUENTA += (cAlias)->COB_CNTA // PAGOS A CUENTA
nSALDO += (cAlias)->COB_SALD // SALDOS
*
SKIP
nRow++
ENDDO
*
oExcel:Say( nRow, 1 , "TOTALES",,12,.T.,,,7,,)
oExcel:Say( nRow, 5 , nIMPORTE,,,,,,7,,)
oExcel:Say( nRow, 6 , nPENDIENTE,,,,,,7,,)
oExcel:Say( nRow, 7 , nACUENTA,,,,,,7,,)
oExcel:Say( nRow, 8 , nSALDO,,,,,,7,,)
*
oExcel:Save()
*
RETURN
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es;
apic1002002@gmail.com