Descrição:
Cria uma tela de processamento que fica com um círculo girando
Declaração:
FWMsgRun( [oComponent] , <bAction>, [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:
#Include "protheus.ch"
#Include "totvs.ch"
/*--------------------------------------------------------------
Funcao : dica004 | Autor: @andredoprotheus
----------------------------------------------------------------
Objetivo: FWMsgRun -- Cria uma tela de processamento que fica
com um círculo girando
--------------------------------------------------------------*/
User Function dica004()
Local aArea := GetArea()
FWMsgRun(, {|oSay| process(oSay) }, "Processando", "Processando dados aguarde...")
RestArea(aArea)
Return
Static Function process(oSay)
Local nAtual := 0
Local nTotal := 0
oSay:SetText("Iniciando processamento...")
//Contando o total de registros da tabela
DbSelectArea("SA1")
SA1->(DbGoTop())
Count To nTotal
//Enquanto houver dados na SBM, muda a mensagem de processamento
SA1->(DbGoTop())
While ! SA1->(EoF())
nAtual++
Say:SetText("Analisando registro " + cValToChar(nAtual) + " de " + cValToChar(nTotal) + "...")
SA1->(DbSkip())
EndDo
Return()