BrOffice x Office

Discussão em 'Progress 4GL' iniciado por muertebr, Março 3, 2011.

  1. muertebr

    muertebr Membro Participativo

    Em Office é feito assim:

    Código:
    /****************************************************************************************
    ** Programa   : upc-tt0402-imp.p
    ** Autor      : Miguel
    ** Cliente    : Atlas Ltda.
    ** Objetivo   : UPC do programa tt0402.
    ****************************************************************************************/
    {include/i-freeac.i}
    {utp/ut-glob.i}
    
    DEF NEW GLOBAL SHARED VARIABLE r-contrato AS ROWID.     /* Rowid da tabela contrato     */
    DEF VAR ed-extenso     AS CHARACTER           NO-UNDO.  /* Retorno do valor por extenso */
    DEF VAR d-saldo        LIKE contrato.vl-frete NO-UNDO.  /* Valor de Saldo               */
    DEF VAR descto         AS DECIMAL             NO-UNDO.
    
    DEFINE VARIABLE hApi   AS HANDLE              NO-UNDO.
    
    def var appword       as com-handle            no-undo.
    def var ch-Documento  as com-handle            no-undo.
    def var ch-FormField  as component-handle      no-undo.
    
    def temp-table tt-raw-digita field raw-digita as raw.
    FIND FIRST contrato NO-LOCK
        WHERE ROWID(contrato) = r-contrato NO-ERROR.
    IF AVAIL contrato THEN DO:
    
        CREATE "word.application" appword.
        ch-Documento = AppWord:Documents:Add("Q:\ems2\_custom\upc\Adiantamento.doc").
                
        ch-Documento:FormFields:Item("c_data"):Result       = TODAY. /* Data atual */
        ch-Documento:FormFields:Item("c_frete"):Result      = string(contrato.vl-frete,"R$ >>>>>,>>>,>>9.99"). /* Valor do frete */
        ch-Documento:FormFields:Item("c_carga"):Result      = contrato.nr-contrato. /* Nro Contrato */
        ch-Documento:FormFields:Item("c_nrcarga"):Result    = contrato.nr-contrato. /* Nro Contrato */
    
        FIND FIRST emitente-tr NO-LOCK
           WHERE emitente-tr.cgc = contrato.nr-cgc-cpf-prop NO-ERROR.
        IF AVAIL emitente-tr THEN DO:
            ch-Documento:FormFields:Item("c_fornecedor"):Result = emitente-tr.cod-emitente. /* Codigo do proprietario */
        END.
        FIND FIRST mov-con-terc NO-LOCK /* Procura o numero do embarque comparando o contrato GT0701 */
            WHERE mov-con-terc.nr-contrato = contrato.nr-contrato NO-ERROR.
        IF AVAIL mov-con-terc THEN DO:
             FIND FIRST romaneio NO-LOCK /* Procura o codigo do motorista no embarque GT0113 */
                WHERE romaneio.nr-romaneio = mov-con-terc.nr-documento NO-ERROR.
            FIND FIRST motorista NO-LOCK /* Procura informações do motorista Banco mgtrp */
                WHERE motorista.cd-motorista = romaneio.cd-motorista NO-ERROR.
            IF AVAIL motorista THEN DO:
                ch-Documento:FormFields:Item("c_motorista"):Result     = motorista.nm-motorista. /* Nome do Motorista */
                ch-Documento:FormFields:Item("c_ass_motorista"):Result = motorista.nm-motorista. /* Nome do Motorista */
            END.
        END.
        FIND FIRST proprietario NO-LOCK
            WHERE proprietario.cd-proprietario = contrato.cd-proprietario NO-ERROR.
        IF AVAIL proprietario THEN DO:
                ch-Documento:FormFields:Item("c_proprietario"):Result = proprietario.nm-proprietario. /* Nome Proprietario */
        END.
        FIND FIRST usuar_mestre NO-LOCK
           WHERE usuar_mestre.cod_usuario = c-seg-usuario NO-ERROR.
        IF AVAIL usuar_mestre THEN DO:
            ch-Documento:FormFields:Item("c_usuario"):Result = usuar_mestre.nom_usuario. /* Usuario que imprimiu */
        END.
        ASSIGN d-saldo = contrato.vl-frete.
        FIND FIRST adiant-contrato NO-LOCK
            WHERE adiant-contrato.nr-contrato = contrato.nr-contrato NO-ERROR.
        IF AVAIL adiant-contrato THEN DO:
            ASSIGN d-saldo = d-saldo - contrato.vl-sest-senat - contrato.vl-inss-terc - contrato.vl-irrf - descto - adiant-contrato.adiantamento.
            ch-Documento:FormFields:Item("c_adiantamento"):Result  = STRING(adiant-contrato.adiantamento,"R$ >>>>>,>>>,>>9.99"). /* Valor do Adiantamento */
            ch-Documento:FormFields:Item("c_adiantamento2"):Result = STRING(adiant-contrato.adiantamento,"R$ >>>>>,>>>,>>9.99"). /* Valor do Adiantamento */
            
            RUN upc\ut-extenso.p(INPUT adiant-contrato.adiantamento,
                                Output ed-extenso).
            ch-Documento:FormFields:Item("c_extenso"):Result = ed-extenso. /* Valor por extenso */
        END.
        AppWord:visible = yes.       
        release object appword.
    END.
    
    Onde existe o modelo do word é usado formularios texto, sai 100%, só que preciso transformar para que saia em brOffice tambem, devido as licenças.

Compartilhe esta Página