1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

crear tablas de openoffice y excel con progress

Discussão em 'Outros/Diversos' iniciado por daniel, Março 25, 2009.

  1. daniel

    daniel Sem Pontuação

    /* 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.

Compartilhe esta Página