FWMsgRun

Cria uma tela de processamento que fica com um círculo girando

Exemplo da Rotina:

FWMsgRun(, {|oSay| fSuaFuncao(oSay) }, "Processando", "Processando a rotina")

Exemplo 1- Chamando uma rotina de processamento:

User Function zTstA()
	Local aArea := GetArea()
	
	FWMsgRun(, {|oSay| fMontaRel(oSay) }, "Processando", "Processando dados para o relatório XPTO")
	
	RestArea(aArea)
Return

Static Function fMontaRel(oSay)
	Local nAtual := 0
	Local nTotal := 0
	
	oSay:SetText("Iniciando processamento...")
	
	//Contando o total de registros da tabela
	DbSelectArea("SBM")
	SBM->(DbGoTop())
	Count To nTotal
	
	//Enquanto houver dados na SBM, muda a mensagem de processamento
	SBM->(DbGoTop())
	While ! SBM->(EoF())
		nAtual++
		oSay:SetText("Analisando registro " + cValToChar(nAtual) + " de " + cValToChar(nTotal) + "...")
		
		SBM->(DbSkip())
	EndDo
Return

Observações:

  • Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
  • Se tiver sugestões de rotinas, pode entrar em contato;

Referências: