Hoje vamos aprender a usadr a Função FWMsgRun do AdvPL [Tlpp], [tl++] Cria uma tela de processamento que fica com um círculo girando. – Curso Protheus grátis AdvPL / TLPP.
Sintaxe: FWMsgRun(, [oComponent] , , [cHeader], [cText] ) -> Nil
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
oComponent | Object | Componente que será sobreposto com o painel | |||
bAction | Code-block | Bloco de código a ser executado (o Bloco de código recebera o objeto TSay para atualizações) | X | ||
cHeader | String | Texto do Header | “” | ||
cText | String | Texto do Corpo | “” |
Exemplos de Uso:
- FWMsgRun(, {|oSay| mMinhaRot(oSay) }, “Processando”, “Processando a rotina…”)
- FwMsgRun(Nil,{|| MSExecAuto({|x,y,z| MATA410(x,y,z)},aCabec,aItens,3)},Nil,”Gerando o pedido de venda…”)
- FWMsgRun(oPanel1, {|oSay| ExecTest(oSay) }, “Processando”, “Processando a rotina…”
#Include "Protheus.ch" /*----------------------------------------------------------------------------------* {Protheus.doc} User Function mFWMsgRun() @type: User Function @author: Jose Moura @site: https://academiaproerp.com @canal: [Inscreva-se no canal https://www.youtube.com/@academiaprotheus] @desc.: Função FWMsgRun. Cria uma tela de processamento com círculo girando @Sintaxe: FWMsgRun(, [oComponent] , <bAction>, [cHeader], [cText] ) -> Nil *-----------------------------------------------------------------------------------*/ User Function mFWMsgRun() Local aArea := GetArea() FWMsgRun(, {|oSay| mMinhaRot(oSay) }, "Processando", "Processando dados Municipios CC2") RestArea(aArea) Return Static Function mMinhaRot(oSay) Local nRegAtu := 0 Local nRegTot := 0 oSay:SetText("Iniciando processamento...") //Contando o total de registros da tabela de Municipios DbSelectArea("CC2") CC2->(DbGoTop()) Count To nRegTot //Enquanto houver dados na CC2, mostra a mensagem de processamento CC2->(DbGoTop()) While !CC2->(EoF()) nRegAtu++ oSay:SetText("Analisando registro " + cValToChar(nRegAtu) + " de " + cValToChar(nRegTot) + "...") ProcessMessage() //FORÇA O DESCONGELAMENTO DO SMARTCLIENT CC2->(DbSkip()) EndDo Return



Analista de sistemas, programador com mais de 18 anos de experiência no sistema Totvs Protheus, administrador, suporte e customizações, idealizador da Academia ProERP, já ajudou centenas de pessoas a programar em AdvPL/Tlpp.