Histórico da Página
...
Função responsável por determinar o tamanho do processamento, o valor aqui definido deverá corresponder exatamente a quantidade de chamadas da função IncProc para que o progresso seja corretamente exibido.
Sintaxe: ProcRegua(nTot, nPercNotif)
Nome | Tipo | Descrição | Obrigatório | Default |
nTot | numérico | Indica a quantidade de passos para conclusão do processo | 0 | |
nPercNotif | numérico | Quando executado em scheduler, define o gatilho de % para emissão dos Eventos de Progresso do EventViewer. Exemplo.: Se definido 25: serão emitidas notificações a cada 25% de progresso. | 25 |
...
Função pela qual deverá ser indicado que um novo passo do processamento foi realizado, quando executado com interface é responsável por promover a evolução da barra de progresso, quando executado via Scheduler é determinante para emissão dos eventos ao atingir o percentual de gatilho.
Sintaxe: IncProc(cMsg)
Nome | Tipo | Descrição | Obrigatório | Default |
---|---|---|---|---|
cMsg | Character | Mensagem que será exibida no dialog Exemplo: "Processando pedido 220984" | "" |
Informações |
---|
A quantidade de chamadas da função IncProc deve corresponder exatamente ao valor definido no parâmetro nTot passado na função ProcRegua. |
ErrorProc
Função que emite uma notificação de erro (Event Viewer), permitindo que os desenvolvedores possam sinalizar ao usuário um evento de erro controlado (ex.: sinalizar que uma validação especifica não permite a execução da rotina em segundo plano).
Informações | ||
---|---|---|
| ||
Uma vez chamada a função e emitido o evento, nenhuma nova notificação de progresso é emitida para o processo vigente, ficando a cargo do desenvolvedor implementar o encerramento do processo. |
Sintaxe: ErrorProc(cDetail)
Nome | Tipo | Descrição | Obrigatório | Default |
---|---|---|---|---|
cDetail | Character | Mensagem que será exibida no detalhe da notificação do Event Viewer | X | "" |
Bloco de código | ||||
---|---|---|---|---|
| ||||
While ! QRY_AUX->(EoF()) //Incrementa a mensagem na régua nAtual++ If nAtual == 3000 //Emite o evento de erro controlado ErrorProc("Erro controlado") //Força saida do laço exit EndIf IncProc("Analisando registro " + cValToChar(nAtual) + " de " + cValToChar(nTotal) + "...") Conout("Analisando registro " + cValToChar(nAtual) + " de " + cValToChar(nTotal) + "...") Sleep(5) QRY_AUX->(DbSkip()) EndDo QRY_AUX->(DbCloseArea()) RestArea(aArea) |
Bloco de código | ||
---|---|---|
| ||
#Include "Protheus.ch" #Include "TopConn.ch" /*/{Protheus.doc} incproctst Função de exemplo de barras de processamento em AdvPL @author Bruno Pirolo @since 28/10/2018 @version 1.0 @type function /*/ Function incproctst(aParam) Local aArea as array Private oNewProess as object aArea := GetArea() Processa({|| fExemplo5()}, "Filtrando...", , , , ) RestArea(aArea) Conout("*********incproctst finalizada pelo scheduller***********") Return /*-----------------------------------------------------------* | Func.: fExemplo5 | | Desc.: Exemplo utilizando Processa | *-----------------------------------------------------------*/ Static Function fExemplo5(cUserId) Local aArea as array Local nAtual as numeric Local nTotal as numeric Local cQryAux as character aArea := GetArea() nAtual := 0 nTotal := 0 //Monta a consulta de grupo de produtos cQryAux := " SELECT * FROM "+RetSqlName("SB1") + " SB1 "+ CRLF cQryAux += " WHERE SB1.D_E_L_E_T_ = ' ' " //Executa a consulta TCQuery cQryAux New Alias "QRY_AUX" //Conta quantos registros existem, e seta no tamanho da régua Count To nTotal ProcRegua(nTotal) //Percorre todos os registros da query QRY_AUX->(DbGoTop()) While ! QRY_AUX->(EoF()) //Incrementa a mensagem na régua nAtual++ IncProc("Analisando registro " + cValToChar(nAtual) + " de " + cValToChar(nTotal) + "...") QRY_AUX->(DbSkip()) EndDo QRY_AUX->(DbCloseArea()) RestArea(aArea) Return |
...