Histórico da Página
...
Informações |
---|
A partir da lib 20240408 quando executada pelo Scheduller Scheduler e tendo o dicionário de lib atualizado, o usuário logado receberá notificações de progresso do processamento automaticoautomático. |
...
Nome | Tipo | Descrição | Obrigatório | Default |
bAction | Bloco de código | Bloco de código da rotina de processamento | X | |
cTitle | Caracter Caractere | Titulo Título da janela de processamento | Aguarde | |
cMsg | Caracter Caractere | Texto da rotina de processamento | Processando... | |
lAbort | Lógico | Indica se a rotina pode ser interrompida | .T. |
...
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 schedullerscheduler, 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 |
Informações | ||
---|---|---|
| ||
A definição do ProcRegua (e consequentemente implementação do IncProc) é obrigatório para emissão dos Eventos de Progresso no EventViewer (quando executado via SchedullerScheduler), a não definição faz com que os eventos não sejam emitidos. |
...
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 Scheduller 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 parametro parâmetro nTot passado na função ProcRegua. |
ErrorProcessa
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: ErrorProcessa(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 | ||
---|---|---|
| ||
#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
|
...