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

Barra de progressão (ProgressBar)

Discussão em 'Progress 4GL' iniciado por eduardo, Dezembro 9, 2009.

  1. baltazar

    baltazar Membro Participativo

    chprgbar:pbar:visible = true -> Mostra a Barra de Progresso (no meu programa está escondida)

    Vou lhe enviar um procedimento que utiliza a progress bar (basta adaptar à sua necessidade)

    Espero que ajude
    Baltazar.

    Código:
    /*------------------------------------------------------------------------------             
      Purpose: EXPORTA E ENVIA OS E-MAILS (PARA IMPRESSA0 = SIM)   
      Parameters:  <none>
      Notes:       
    ------------------------------------------------------------------------------*/
    
    do with frame frmbase:
    
        /*
        ------------------
        LIMPA AS VARIAVEIS
        ------------------
        */
        
        RUN Limpa_Variaveis.
    
        /*
        ******************
        SE IMPRESSÃO = SIM
        ******************
        */
    
        if cboimpressao:screen-value = entry(1,cboimpressao:list-items) then do: 
    
            do i = 1 to brwemails:num-selected-rows:
    
                if brwemails:fetch-selected-row(i) then do:
    
                    RUN EscondeItens.
    
                    /*
                    -------
                    GRAFICO
                    -------
                    */
                    
                    prgbar:visible        = true.
                    chprgbar:pbar:visible = true.
    
                    /* -- */
                    
                    x-parcial = chprgbar:pbar:max / brwemails:num-selected-rows.
                    chprgbar:pbar:value = x-total.
                
                    /*
                    -------------------
                    CARREGA AS VARIAVES
                    -------------------
                    */
    
                    x-rcc_cod     = int(tt_emails.rcc_cod).
                    x-rc1_num     = int(tt_emails.rc1_num).
                    x-ctb_email   = tt_emails.ctb_email.
                    x-codterceiro = tt_emails.trc_cod.
    
                    x-nrcopias    = txtnrcopias:screen-value.
    
                    /*
                    ---------------------------
                    VÊ QUAL É O PAIS DO CLIENTE
                    ---------------------------
                    */
    
                    run hx_s0031.p( tt_emails.trc_cod,
                                    "",
                       
                                    output o-idioma).
    
                    /*
                    ----------------
                    CARREGA O MODELO
                    ----------------
                    */
    
                    RUN CarregaModelo.
                    
                    /*
                    ====================================================
                    EXPORTA O(S) RECIBO(S) SELECCIONADO(S) PARA MS EXCEL 
                    ====================================================
                    */
    
                    /*
                    -----------------------------
                    SE O CLIENTE NÃO TIVER E-MAIL
                    -----------------------------
                    */
    
                    if x-ctb_email = "" then do:
    
                        RUN Exportacao_Excel_1.
                         
                        /*
                        ---------------------------------
                        GRAVA A DATA DE GERAÇÃO DO E-MAIL
                        ---------------------------------
                        */
    
                        find    ct_rcb01    where
                                ct_rcb01.rcc_tipo    = 1                        and
                                ct_rcb01.rcc_cod     = int(tt_emails.rcc_cod)   and
                                ct_rcb01.rc1_num     = int(tt_emails.rc1_num)   and
                                ct_rcb01.rc1_datadoc = date(tt_emails.rc1_datadoc)   
                                exclusive-lock no-error.
                                              
                        if available ct_rcb01 then ct_rcb01.data_email = today.
                        
                        /*
                        ----------------------
                        PERCENTAGEM DO GRAFICO
                        ----------------------
                        */
                                                       
                        x-total = x-total + x-parcial.
                        chprgbar:pbar:value = x-total.
    
                    end.
    
                    /*
                    ==========================
                    SE O TERCEIRO TIVER E-MAIL
                    ==========================
                    */
    
                    else do:
    
                        find    hx_text1    where
                                hx_text1.cp_codigo      = comp      and
                                hx_text1.num_texto      = 8         and
                                hx_text1.idioma         = o-idioma  and
                                hx_text1.ut_nome        = ut-nome
                                no-lock no-error.
    
                        /*
                        ------------------------------------------------
                        SE NÃO EXISTIR PERFIL DE ENVIO PARA O UTILIZADOR
                        ------------------------------------------------
                        */
    
                        if not available hx_text1 then do:
    
                            RUN Exportacao_Excel_1.
                            
                            /*
                            ---------------------------------
                            GRAVA A DATA DE GERAÇÃO DO E-MAIL
                            ---------------------------------
                            */
    
                            find    ct_rcb01    where
                                    ct_rcb01.rcc_tipo    = 1                        and
                                    ct_rcb01.rcc_cod     = int(tt_emails.rcc_cod)   and
                                    ct_rcb01.rc1_num     = int(tt_emails.rc1_num)   and
                                    ct_rcb01.rc1_datadoc = date(tt_emails.rc1_datadoc)   
                                    exclusive-lock no-error.
                                              
                            if available ct_rcb01 then ct_rcb01.data_email = today.
                            
                            /*
                            ----------------------
                            PERCENTAGEM DO GRAFICO
                            ----------------------
                            */
                                                                      
                            x-total = x-total + x-parcial.
                            chprgbar:pbar:value = x-total.
    
                        end.
    
                        /*
                        ============================================
                        SE EXISTIR PERFIL DE ENVIO PARA O UTILIZADOR
                        ============================================
                        */
    
                        else do:
    
                            /*
                            --------------------------------
                            TESTA SE O FICHEIRO PDF EXISTE ?
                            SE EXISTIR ELIMINA-O!
                            --------------------------------
                            */
    
                            if search(protdir + "\REC" +
                                                string(x-rcc_cod,"99") + "-" + 
                                                string(x-rc1_num,"999999")   +
                                                ".pdf")                      <> ? then do:
    
                                os-delete value(protdir + "\REC" +
                                                string(x-rcc_cod,"99") + "-" + 
                                                string(x-rc1_num,"999999")   +
                                                ".pdf").
                            end.
    
                            /*
                            -----------------------------------------------------
                            EXPORTA O(S) RECIBOS(S) SELECCIONADO(S) PARA MS EXCEL 
                            -----------------------------------------------------
                            */
    
                            RUN Exportacao_Excel_2.
                            
                            /*
                            *********************************
                            GRAVA O E-MAIL COM O ANEXO CRIADO
                            (TEXTO + ASSINATURA + PUBLICIDADE)
                            *********************************
                            */
    
                            RUN TextoEmail.
                            
                            /*
                            ---------------------------------------------------------------
                            TESTA SE O ANEXO EXISTE , SÓ CONTINUA QUANDO O FICHEIRO EXISTIR
                            (NECESSÁRIO DADO QUE O FICHEIRO VAI SER CONVERTIDO EM PDF)
                            ---------------------------------------------------------------
                            */
                            
                            do while search( protdir + "\REC" +
                                             string(x-rcc_cod,"99") + "-"   + 
                                             string(x-rc1_num,"999999")     +
                                             ".pdf")                        = ?:
                            end.
                            
                            /*
                            --------------
                            ENVIA O E-MAIL
                            --------------
                            */
    
                            RUN Envia_Email.
    
                            /*
                            ---------------------------------------
                            APAGA O FICHEIRO XLS
                            (PARA NÃO EXISTIR O MESMO DOCUMENTO 2x)
                            ---------------------------------------
                            */
    
                            if search(protdir + "\REC" +
                                                string(x-rcc_cod,"99") + "-" + 
                                                string(x-rc1_num,"999999")   +
                                                ".xls")                      <> ? then do:
    
                                os-delete value(protdir + "\REC" +
                                                string(x-rcc_cod,"99") + "-" + 
                                                string(x-rc1_num,"999999")   +
                                                ".xls").
                            end.
                            
                            /*
                            ---------------------------------
                            GRAVA A DATA DE GERAÇÃO DO E-MAIL
                            ---------------------------------
                            */
    
                            find    ct_rcb01    where
                                    ct_rcb01.rcc_tipo    = 1                        and
                                    ct_rcb01.rcc_cod     = int(tt_emails.rcc_cod)   and
                                    ct_rcb01.rc1_num     = int(tt_emails.rc1_num)   and
                                    ct_rcb01.rc1_datadoc = date(tt_emails.rc1_datadoc)   
                                    exclusive-lock no-error.
                                              
                            if available ct_rcb01 then ct_rcb01.data_email = today.
                                            
                            /*
                            ----------------------
                            PERCENTAGEM DO GRAFICO
                            ---------------------
                            */
                                                                      
                            x-total = x-total + x-parcial.
                
                            chprgbar:pbar:value = x-total.
    
                        end.
                    end.
                end.
            end.
    
            /*
            ===
            FIM
            ===
            */
    
            chprgbar:pbar:value  = 100.
    
            if o-estado = 0 then do:
                
                message "Envio de E-Mail(s) Concluido"
                        view-as alert-box info title "Informação".
            end.
    
            /* -- */
        
            chprgbar:pbar:visible = false.
            prgbar:visible        = false.
    
            /* -- */
            
            RUN MostraItens.
    
        end.
        
        /*
        ----------------
        CARREGA O BROWSE
        ----------------
        */
    
        RUN CarregaDados.
    
    end.
    END PROCEDURE.
    
    
    
  2. startbit

    startbit Membro Participativo

    Bom dia eduardo.

    Sei de uma UTP para barra de progress!
    não sei se é bem o que você precisa, mas prefiro ela do que a ut-acomp. Descobri estes dias, e passei a utilizar em importação de dados e outras coisinhas demoradas que o usuário não aguenta ficar sem informação de tempo...

    Verifica se você tem esta UTP:
    utp/ut-perc.r

    Caso sim manda um email que te envio o código para utilizar. É super prático!
    Você passa antes uma consulta e ele gera o número total de registros depois na importação ele mostra o progresso em cima do total...
  3. mepossamai

    mepossamai Sem Pontuação

    Olá... seria em ambiente gráfico ou caracter? Datasul ou Progress mesmo?
  4. startbit

    startbit Membro Participativo

  5. fdantas

    fdantas Administrator Moderador

    Tente usaro código abaixo


    Código:
    
    def var h-ut-perc       as handle no-undo.
    run utp/ut-perc.p persistent set h-ut-perc.
     
     
    select count(*) into i-conta-reg from ordem-compra              .
            IF i-conta-reg < 100 THEN
                ASSIGN i-conta-reg = 100.
     
            run utp/ut-perc.p persistent set h-ut-perc.
            run pi-inicializar in h-ut-perc (input "Teste",
                                             input i-conta-reg).
     
            FOR EACH ordem-compra FIELDS(requisitante situacao cod-estabel cod-estab-gestor) SHARE-LOCK                  .
     
                run pi-acompanhar in h-ut-perc.
    
  6. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    A mensagem foi replicada acima

Compartilhe esta Página