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
