Abrindo telas de processamento com FWMsgRun e MsgRun – Maratona AdvPL e TL++ 235

Nesse vídeo demonstraremos a utilização das funções FWMsgRun e MsgRun, que servem para abrir uma tela de processamento de informações.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe235
Exemplo de barras de processamento
@type Function
@author Atilio
@since 20/02/2023
@see https://tdn.totvs.com/display/public/framework/FWMsgRun e https://tdn.totvs.com/display/tec/MsgRun
@obs 
    Função FWMsgRun
    Parâmetros
        + oComponent    , Objeto            , Componente que será sobreposto com o painel
        + bAction       , Bloco de Código   , Bloco que será executado
        + cHeader       , Caractere         , Título da janela
        + cText         , Caractere         , Texto que será apresentado
    Retorno
        Não tem retorno

    Função MsgRun
    Parâmetros
        + cText         , Caractere         , Texto que será apresentado
        + cHeader       , Caractere         , Título da janela
        + bBlock        , Bloco de Código   , Bloco que será executado
    Retorno
        Não tem retorno

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe235()
    Local aArea     := FWGetArea()
    Local nTotal    := 0
    Private aDados  := Array(1000000)

    //Mostra qualquer mensagem
    MsgRun("Lendo informações...", "Teste", {|| aEval(aDados, {|x| nTotal++}) })

    //Mostra a barra que fica carregando
    FWMsgRun(, {|oSay| fCorre(oSay) }, "Processando", "Buscando informações")

    FWRestArea(aArea)
Return

Static Function fCorre(oSay)
    Local nAtual := 0

    //Percorre o array e define o texto
    For nAtual := 1 To Len(aDados)
        //oSay:SetText("Registro " + cValToChar(nAtual) + " de " + cValToChar(Len(aDados)))
    Next
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação