Totvs Protheus Função FWMsgRun AdvPL [Tlpp]

Totvs Protheus Função FWMsgRun AdvPL [Tlpp]

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:
NomeTipoDescriçãoDefaultObrigatórioReferência
oComponentObjectComponente que será sobreposto com o painel   
bActionCode-blockBloco de código a ser executado (o Bloco de código recebera o objeto TSay para atualizações) X 
cHeaderStringTexto do Header“”  
cTextStringTexto do Corpo“”  

Exemplos de Uso:

  1. FWMsgRun(, {|oSay| mMinhaRot(oSay) }, “Processando”, “Processando a rotina…”)
  2. FwMsgRun(Nil,{|| MSExecAuto({|x,y,z| MATA410(x,y,z)},aCabec,aItens,3)},Nil,”Gerando o pedido de venda…”)
  3. 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

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *