Barra usada para execução de blocos de código, como DbEval e aEval
Exemplo da Rotina:
MsgRun("Mensagem...", "Título", [Bloco de Código])
Exemplo 1- Mostrando a barra de processamento:
//Bibliotecas #Include "Protheus.ch" #Include "TopConn.ch" /*/{Protheus.doc} zTstBar Função de exemplo de barras de processamento em AdvPL @author Atilio @since 28/10/2018 @version 1.0 @type function @example u_zTstBar() /*/ User Function zTstBar() Local aArea := GetArea() Local lContinua := .T. Local nTipoRegua := 0 Local oProcess Private cQryAux := "" //Monta a consulta de grupo de produtos cQryAux := " SELECT " + CRLF cQryAux += " BM_GRUPO, " + CRLF cQryAux += " BM_DESC " + CRLF cQryAux += " FROM " + CRLF cQryAux += " SBM010 SBM " + CRLF cQryAux += " WHERE " + CRLF cQryAux += " BM_FILIAL = ' ' " + CRLF cQryAux += " AND SBM.D_E_L_E_T_ = ' ' " + CRLF //Executa a consulta TCQuery cQryAux New Alias "QRY_AUX" //Chamando a régua que irá executar o bloco de código (como um aEval, DbEval, etc) MsgRun("Lendo tabela...", "Título", {|| QRY_AUX->(DbEval({|x| nTotal++})) }) QRY_AUX->(DbCloseArea()) MsgInfo("Processado: " + cValToChar(nTotal) + " registro(s)", "Atenção") RestArea(aArea) Return
Exemplo em Vídeo:
Clique nesse link para ver um exemplo em Vídeo da nossa Maratona de Exemplos.