/* dEFINE VARIABLE hproceso1 AS HANDLE. */ DEFINE VARIABLE chExcelApplication AS COM-HANDLE. DEFINE VARIABLE chWorkbook AS COM-HANDLE. DEFINE VARIABLE chWorkSheet AS COM-HANDLE. DEFINE VARIABLE chChart AS COM-HANDLE. DEFINE VARIABLE chWorksheetRange AS COM-HANDLE. /* Variables OOffice */ DEFINE VARIABLE chOpenOffice AS COM-HANDLE. DEFINE VARIABLE chDesktop AS COM-HANDLE. DEFINE VARIABLE chDesktop1 AS COM-HANDLE. DEFINE VARIABLE cc AS RAW. DEFINE VARIABLE fila AS INTEGER. DEFINE VARIABLE yy AS INTEGER. DEFINE VARIABLE dato AS CHARACTER EXTENT 9. DEFINE VARIABLE celda AS CHARACTER. DEFINE VARIABLE aux_nombre AS CHARACTER. DEFINE TEMP-TABLE tt_datos FIELD compr LIKE detalle.comprobante FIELD fecha AS DATE FIELD formu AS CHARACTER FIELD canti AS DECIMAL FIELD saldo AS DECIMAL FIELD clien AS INTEGER FIELD desa AS INTEGER FIELD obser AS CHARACTER FIELD usuario AS CHARACTER. /* Create a new Excel Application Object */ CREATE "Excel.Application" chExcelApplication NO-ERROR. IF VALID-HANDLE (chExcelApplication) THEN DO: /* Excel visible */ chExcelApplication:VISIBLE = TRUE. /* create new Workbook */ chWorkbook = chExcelApplication:Workbooks:ADD(). /* get the active Worksheet */ chWorkSheet = chExcelApplication:Sheets:ITEM(1). chWorkSheet:COLUMNS("A"):ColumnWidth = 10. chWorkSheet:COLUMNS("B"):ColumnWidth = 15. chWorkSheet:COLUMNS("C"):ColumnWidth = 15. chWorkSheet:COLUMNS("D"):ColumnWidth = 15. chWorkSheet:COLUMNS("E"):ColumnWidth = 15. chWorkSheet:COLUMNS("F"):ColumnWidth = 15. chWorkSheet:COLUMNS("G"):ColumnWidth = 15. chWorkSheet:COLUMNS("H"):ColumnWidth = 15. chWorkSheet:Range("A1"):FONT:Bold = TRUE. chWorkSheet:Range("A1"):VALUE = "KARDEX " + pcnombre + " (" + PROGRAM-NAME(1) + ")". chWorkSheet:Range("A3:H3"):FONT:bold = TRUE. chWorkSheet:Range("A3"):VALUE = "Comprobante". chWorkSheet:Range("B3"):VALUE = "Fecha". chWorkSheet:Range("C3"):VALUE = "Concepto". chWorkSheet:Range("D3"):VALUE = "Cantidad". chWorkSheet:Range("E3"):VALUE = "Saldo". chWorkSheet:Range("F3"):VALUE = "Cliente". chWorkSheet:Range("G3"):VALUE = "Desarrollo". chWorkSheet:Range("H3"):VALUE = "Observación". /* Carga Datos */ fila = 4. FOR EACH tt_datos NO-LOCK: ASSIGN dato[1] = tt_datos.compr dato[2] = string(YEAR(tt_datos.fecha)) + "/" + STRING(MONTH(tt_datos.fecha)) + "/" + STRING(DAY(tt_datos.fecha)) dato[3] = tt_datos.formu dato[4] = STRING(tt_datos.canti, "->>,>>>,>>9") dato[5] = STRING(tt_datos.saldo, "->>,>>>,>>9") dato[6] = STRING(tt_datos.clien, ">>,>>9") dato[7] = STRING(tt_datos.desa,">>,>>9") dato[8] = tt_datos.obser. DO yy = 1 TO 8: IF yy = 1 THEN celda = "A" + STRING(fila). IF yy = 2 THEN celda = "B" + STRING(fila). IF yy = 3 THEN celda = "C" + STRING(fila). IF yy = 4 THEN celda = "D" + STRING(fila). IF yy = 5 THEN celda = "E" + STRING(fila). IF yy = 6 THEN celda = "F" + STRING(fila). IF yy = 7 THEN celda = "G" + STRING(fila). IF yy = 8 THEN celda = "H" + STRING(fila). chworkSheet:Range(celda):VALUE = dato[yy]. END. ASSIGN fila = fila + 1. END. RELEASE OBJECT chExcelApplication no-error. RELEASE OBJECT chWorkbook no-error. RELEASE OBJECT chWorkSheet no-error. END. ELSE DO: CREATE "com.sun.star.ServiceManager" chOpenOffice NO-ERROR. IF VALID-HANDLE (chOpenOffice) THEN DO: chDesktop = chOpenOffice:createInstance("com.sun.star.frame.Desktop"). chdesktop1 = chOpenOffice:createInstance("com.sun.star.style.PageProperties"). SESSION:SET-WAIT-STATE("wait"). chWorkBook= chDesktop:loadComponentFromURL("private:factory/scalc","_blank",0,cc). chWorkSheet = chWorkbook:Sheets:getByIndex(0). chWorksheet:Columns(0):Width = 5. chWorkSheet:COLUMNS(1):OptimalWidth = TRUE. chWorkSheet:COLUMNS(2):OptimalWidth = TRUE. chWorkSheet:COLUMNS(3):OptimalWidth = TRUE. chWorkSheet:COLUMNS(4):OptimalWidth = TRUE. chWorkSheet:COLUMNS(5):OptimalWidth = TRUE. chWorkSheet:COLUMNS(6):OptimalWidth = TRUE. chWorkSheet:COLUMNS(7):OptimalWidth = TRUE. chWorkSheet:COLUMNS(8):OptimalWidth = TRUE. chWorkSheet:COLUMNS(9):OptimalWidth = TRUE. chWorkSheet:COLUMNS(10):OptimalWidth = TRUE. /* chWorkSheet:Range("A3:K3"):interior:ColorIndex= 8. chWorkSheet:Range("A1"):FONT:Bold = TRUE. chWorkSheet:Range("A1:K1"):FONT:ColorIndex = 3. */ chWorkSheet:GetCellRangeByName("A1:K1"):CharWeight = 150. /* chWorkSheet:GetCellRangeByName("A1:K1"):BackColor = 2345667. */ chWorkSheet:GetCellRangeByName("A1:K1"):CharColor = 16711680. chWorkSheet:GetCellByPosition(0,0):STRING = "KARDEX " + pcnombre + " (" + PROGRAM-NAME(1) + ")". /* chWorkSheet:Range("A3:K3"):FONT:bold = TRUE.*/ chWorkSheet:GetCellByPosition(0,2):STRING = "Comprobante". chWorkSheet:GetCellByPosition(1,2):STRING = "Fecha". chWorkSheet:GetCellByPosition(2,2):STRING = "Concepto". chWorkSheet:GetCellByPosition(3,2):STRING = "Cantidad". chWorkSheet:GetCellByPosition(4,2):STRING = "Saldo". chWorkSheet:GetCellByPosition(5,2):STRING = "Cliente". chWorkSheet:GetCellByPosition(6,2):STRING = "Desarrollo". chWorkSheet:GetCellByPosition(7,2):STRING = "Observacion". fila = 3. FOR EACH tt_datos NO-LOCK: chWorkSheet:GetCellByPosition(0,fila):STRING = tt_datos.compr. chWorkSheet:GetCellByPosition(1,fila):STRING = tt_datos.fecha. chWorkSheet:GetCellByPosition(2,fila):STRING = tt_datos.formu. chWorkSheet:GetCellByPosition(3,fila):VALUE = tt_datos.canti. chWorkSheet:GetCellByPosition(4,fila):VALUE = tt_datos.saldo. chWorkSheet:GetCellByPosition(5,fila):VALUE = tt_datos.clien. chWorkSheet:GetCellByPosition(6,fila):VALUE = tt_datos.desa. chWorkSheet:GetCellByPosition(7,fila):STRING = tt_datos.obser. ASSIGN fila = fila + 1. END. /* END DEL FOR EACH diario */ RELEASE OBJECT chOpenOffice. RELEASE OBJECT chWorkbook. RELEASE OBJECT chDesktop. RELEASE OBJECT chWorksheet. SESSION:SET-WAIT-STATE(""). END. END.