Classe: MsNewProcess
Por meio deste objeto é possível executar uma rotina em que será disponibilizada ao usuário duas barras de processamento para acompanhamento do processo que está sendo executado.
New
Cria o objeto da MsNewProcess
MsNewProcess(): New ( [ bAction], [ cTitle], [ cMsg], [ lAbort] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
bAction | Bloco de código | Bloco de código a ser executado pela janela | ||
cTitle | Caracter | Título a ser apresentado na janela | ||
cMsg | Caracter | Mensagem apresentada ao usuário na primeira barra de processamento | ||
lAbort | Lógico | Caso o parâmetro lAbort seja igual a .T. ele habilita o botão Cancelar, possibilitando o cancelamento do processo utilizado pela janela. Caso contrário, o botão Cancelar fica desabilitado. |
Activate
Cria a janela onde serão apresentadas as barras de processamento.
MsNewProcess(): Activate ( ) -->
IncRegua1
Atualiza o valor da primeira barra de progresso. Se o parâmetro cMsg for atribuído o conteúdo do parâmetro cMsg será apresentado na primeira régua de processamento.
MsNewProcess(): IncRegua1 ( [ cMsg] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
cMsg | Caracter | Texto a apresentado na primeira barra de progresso. |
IncRegua2
Atualiza o valor da segunda barra de progresso. Se o parâmetro cMsg for atribuído o conteúdo do parâmetro cMsg será apresentado na segunda régua de processamento.
MsNewProcess(): IncRegua2 ( [ cMsg] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
cMsg | Caracter | Texto a apresentado na segunda barra de progresso. |
SetRegua1
Passa para a primeira régua de processamento a quantidade de registros que a rotina irá processar. O valor passado no parâmetro nSet será utilizado para a contagem da barra de progressão.
MsNewProcess(): SetRegua1 ( [ nSet] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
nSet | Numérico | Quantidade de registros a serem processados pela rotina |
SetRegua2
Passa para a segunda régua de processamento a quantidade de registros que a rotina irá processar. O valor passado no parâmetro nSet será utilizado para a contagem da barra de progressão.
MsNewProcess(): SetRegua2 ( [ nSet] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
nSet | Numérico | Quantidade de registros a serem processados pela rotina |
Exemplo
#include "protheus.ch" //------------------------------------------------------------------- /*/{Protheus.doc} F114299 Exemplo de utilização da MsNewProcess @author Totvs @since 29/04/2024 //-----------------------------------------------------------------*/ Function U_F114299() Local oProcess//incluído o parâmetro lEnd para controlar o cancelamento da janela oProcess := MsNewProcess():New({|lEnd| T114299(@oProcess, @lEnd) },"Teste MsNewProcess","Lendo Registros do Pedido de Vendas",.T.) oProcess:Activate() Return //------------------------------------------------------------------- /*/{Protheus.doc} T114299 Processamento @author Totvs @since 29/04/2024 //-----------------------------------------------------------------*/ static Function T114299(oProcess, lEnd) Local nCountC5 Local nCountC6 //inserido este bloco Default lEnd := .F. DbSelectArea("SC5") DbSetOrder(1) DbGotop() nCountC5 := SC5->(RecCount()) oProcess:SetRegua1(nCountC5) While SC5->(!Eof()) sleep(300) If lEnd //houve cancelamento do processo Exit EndIf oProcess:IncRegua1("Lendo Pedido de Venda:" + SC5->C5_NUM) DbSelectArea("SC6") DbSetOrder(1) DbClearFil() Set Filter to SC6->C6_FILIAL == xFilial("SC5") .And. SC6->C6_NUM == SC5->C5_NUM COUNT to nCountC6 oProcess:SetRegua2(nCountC6) While SC6->(!Eof()) //inserido este bloco If lEnd //houve cancelamento do processo Exit EndIf oProcess:IncRegua2("Pedido: "+SC5->C5_NUM+" - Item: "+SC6->C6_ITEM) sleep(300) conout("Item: "+SC6->C6_ITEM) SC6->(DbSkip()) End SC5->(DbSkip()) End Return
Microsiga Protheus 8.11 , Protheus 10
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas