Progress broffice

Discussão em 'Progress 4GL' iniciado por m.heckler, Agosto 19, 2010.

  1. m.heckler

    m.heckler Sem Pontuação

    Trabalho com progress 10.1a com o EMS e HCM tenho alguns programas que geram planilhas em Excel, mas agora preciso desenvolver no BROffice, alguém tem algum exemplo que pode me ajudar?
  2. kirchner

    kirchner Membro Participativo Moderador

    m.heckler,

    O Office suporta um monte de funcionalidades (acho que quase tudo) via automação OLE.

    Eu não conheço o BROffice, mas ele suporta isto também? Caso sim é fácil, instância os objetos e chama os métodos, da mesma forma como você faz com o Office.
    Se ele suporta isto tudo deve ter uma documentação também.
  3. m.heckler

    m.heckler Sem Pontuação

    Pois é, não sei se suporta, por isso estou gostaria que alguém que desenvolva em Progress, me de algum exemplo de programa que abra ou exporte os dados para o BROffice.
  4. LeandroSantos

    LeandroSantos Membro Participativo

    Ta ai um exemplo bem simples, espero que ajude.

    Código:
    
    
    DEF VAR LIST-PLAN    AS C INIT "PLAN1,PLAN2".
    
    DEF VAR OBJ-SERVICE  AS COM-HANDLE.
    DEF VAR OBJ-DESKTOP  AS COM-HANDLE.
    DEF VAR OBJ-WORK     AS COM-HANDLE.
    DEF VAR OBJ-PLAN     AS COM-HANDLE EXTENT 40.
    DEF VAR OBJ-WORKCOL  AS COM-HANDLE.
    DEF VAR OBJ-COL      AS COM-HANDLE.
    DEF VAR CC AS RAW.
    DEF VAR OLINBORDA    AS COM-HANDLE.
    
    def var loop    as int.
    def var iLinha  as int.
    def var iCol    as int.
    
    
    
    
    CREATE "com.sun.star.ServiceManager" OBJ-SERVICE.
    OBJ-DESKTOP = OBJ-SERVICE:createinstance("com.sun.star.frame.Desktop").
    OBJ-WORK    = OBJ-DESKTOP:loadComponentFromURL("file:///c:/modelo.ots","_blank",0,cc).
    
    
    
       
    def temp-table tt-relatorio
        field codigo as int
        field nome   as char format "X(30)"
        field data   as date.
     
    
    do loop = 1 to 10.
        create tt-relatorio.
        assign
            tt-relatorio.codigo = loop
            tt-relatorio.nome = "Fulano-" + string(loop)
            tt-relatorio.data = today + loop.
    end.
    
    
    
    
    DO LOOP = 1 TO 2.
          
       if trim(entry(loop,list-plan)) = ? 
       then leave.
       else assign
               OBJ-PLAN[loop] = OBJ-WORK:Sheets:getByIndex(loop - 1)
               OBJ-PLAN[loop]:name = entry(loop,list-plan).
    
    END.
    
    
    
    oLinBorda = OBJ-PLAN[1]:getPropertyValue("TopBorder").
    oLinBorda:OuterLineWidth = 40.
                                       
                                                                  
    
    OBJ-WORKCOL = OBJ-PLAN[1]:getColumns().    
    
    OBJ-COL = OBJ-WORKCOL:getByIndex(0).
    OBJ-COL:width = 5 * 250.
    
    OBJ-COL = OBJ-WORKCOL:getByIndex(1).
    OBJ-COL:width = 10 * 250.
    
    OBJ-COL = OBJ-WORKCOL:getByIndex(2).
    OBJ-COL:width = 30 * 250.
    
    
    assign
        iLinha  = 0
        iCol    = 0.
       
    for each tt-relatorio.
    
        OBJ-PLAN[1]:GetCellByPosition(iCol, iLinha):STRING = string(tt-relatorio.codigo). 
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyvalue("HoriJustify", 3). /* Alinhamento 1-Esquerda 2-Centro 3-Direita */
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("CharWeight",200). /* TEXTO EM NEGRITO */
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("TopBorder", oLinBorda).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("RightBorder", oLinBorda).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("LeftBorder", oLinBorda).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("BottomBorder", oLinBorda).
    
        iCol = iCol + 1.
        
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):STRING = string(tt-relatorio.data).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyvalue("HoriJustify", 2).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("CharWeight",0).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("TopBorder", oLinBorda).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("RightBorder", oLinBorda).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("LeftBorder", oLinBorda).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("BottomBorder", oLinBorda).
    
        iCol = iCol + 1.
        
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):STRING = tt-relatorio.nome.
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyvalue("HoriJustify", 1).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("CharWeight",0).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("TopBorder", oLinBorda).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("RightBorder", oLinBorda).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("LeftBorder", oLinBorda).
        OBJ-PLAN[1]:GetCellByPosition(iCol,iLinha):setPropertyValue("BottomBorder", oLinBorda).
    
    
        assign
            iLinha  = iLinha + 1
            iCol    = 0.
    end.
    
    
    

Compartilhe esta Página