Páginas filhas
  • MsNewProcess

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
MsNewProcess
MsNewProcess

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.


Índice
maxLevel2

New

Cria o objeto da MsNewProcess


MsNewProcess(): New ( [ bAction], [ cTitle], [ cMsg], [ lAbort] ) -->



NomeTipoDescriçãoObrigatórioReferência
bActionBloco de códigoBloco de código a ser executado pela janela

cTitleCaracterTítulo a ser apresentado na janela

cMsgCaracterMensagem apresentada ao usuário na primeira barra de processamento

lAbortLógicoCaso 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] ) -->



NomeTipoDescriçãoObrigatórioReferência
cMsgCaracterTexto 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] ) -->



NomeTipoDescriçãoObrigatórioReferência
cMsgCaracterTexto 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] ) -->



NomeTipoDescriçãoObrigatórioReferência
nSetNuméricoQuantidade 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] ) -->



NomeTipoDescriçãoObrigatórioReferência
nSetNuméricoQuantidade de registros a serem processados pela rotina




Bloco de código
languagec#
titleExemplo
linenumberstrue
#include "protheus.ch"
User Function F114299()


//-------------------------------------------------------------------
/*/{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 
janelaoProcess
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  
   
Local
 
 
nCountC5Local
 
nCountC6
  //inserido este 
blocoDefault
bloco
	Default lEnd := .F.
	
    DbSelectArea("SC5")
	DbSetOrder(1)
	DbGotop()
	nCountC5 := SC5->(RecCount())
	oProcess:SetRegua1(nCountC5)
	
    While SC5->(!Eof())
		sleep(300)

		If lEnd
           
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())
EndReturn

	End
Return


Image Added

Microsiga Protheus 8.11 , Protheus 10