Processa + ProcRegua + IncProcCria a janela de progresso, define o total da régua e incrementa a execução dentro do processamento.
AdvPL GuiaProcessa · ProcRegua · IncProc · RptStatus · SetRegua · IncReguaOrganize processamentos demorados com janelas de acompanhamento e réguas de progressão.
Réguas de progresso ajudam o usuário a perceber que uma rotina longa continua em execução. No AdvPL, o conjunto mais comum com Processa usa um bloco de ação, ProcRegua para definir o total e IncProc para avançar a régua. Em outro modelo visual, RptStatus trabalha com SetRegua e IncRegua. Embora os nomes sejam parecidos, os pares pertencem a fluxos diferentes; misturá-los sem validar o contexto pode gerar comportamento inesperado.
Processa · ProcRegua · IncProc · RptStatus · SetRegua · IncReguaProcessa + ProcRegua + IncProcCria a janela de progresso, define o total da régua e incrementa a execução dentro do processamento.
RptStatus + SetRegua + IncReguaExibe uma janela de status e controla a barra de progressão com funções próprias desse contexto.
Conteúdo conceitual. Consulte a página específica de cada função para sintaxe e exemplo.
#Include "TOTVS.ch"
User Function ExProcessa()
Local bAcao := {|lFim| U_ExProcessaItens(@lFim)}
Local cTitulo := "Processamento"
Local cMsg := "Processando itens..."
Local lAborta := .T.
Processa(bAcao, cTitulo, cMsg, lAborta)
Return
User Function ExProcessaItens(lFim)
Local nItem
Local nTotal := 100
ProcRegua(nTotal)
For nItem := 1 To nTotal
If lFim
Exit
EndIf
// Execute aqui o processamento do item.
IncProc()
Next nItem
ReturnA janela criada por Processa acompanha o laço. ProcRegua define o total e IncProc avança a régua a cada item processado.
#Include "TOTVS.ch"
#Include "TopConn.ch"
User Function ExRptStatus()
Local aArea := GetArea()
RptStatus({|| U_ExReguaQuery()}, "Aguarde...", "Executando consulta...")
RestArea(aArea)
Return
User Function ExReguaQuery()
Local aArea := GetArea()
Local nTotal := 0
TCQuery "SELECT BM_GRUPO, BM_DESC FROM %table:SBM% SBM WHERE SBM.D_E_L_E_T_ = ' '" New Alias "QRY_AUX"
Count To nTotal
SetRegua(nTotal)
QRY_AUX->(DbGoTop())
While ! QRY_AUX->(Eof())
// Processa o registro atual.
IncRegua()
QRY_AUX->(DbSkip())
EndDo
QRY_AUX->(DbCloseArea())
RestArea(aArea)
ReturnRptStatus abre uma janela de status. SetRegua define o total e IncRegua incrementa a barra conforme os registros são processados.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de seus titulares. O AdvPL Guia é independente e utiliza citações limitadas, atribuídas e justificadas por finalidade educativa. Consulte os Termos de Uso. Termos de Uso
Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.