Páginas filhas
  • FWGridProcess

Esta classe constrói uma interface padrão de processamento, seja ele em grid ou não.
Entende-se por processamento em grid o processamento que pode ser divido de tal forma que as partes unitárias não tenham dependências entre si. Por exemplo
a um processamento realiza uma seleção de registros em uma tabela de domínio e para cada conjunto de registros desta tabela um transação pode ser disparada.

 


Método construtor da classe.


FWGridProcess(): New (<cFunName>,<cTitle>,<cDescription>,<bProcess>,<cPerg>,<cGrid>,<lSaveLog> ) -->


 

NomeTipoDescriçãoObrigatórioReferencia
cFunNameCaracterNome da rotina de menu de processamentoX 
cTitleCaracterTitulo da rotina de menuX 
cDescriptionCaracterDescrição completa da rotinaX 
bProcessBlocoBloco de código de processamento. O bloco recebe a variavel que informa que a rotina foi canceladaX 
cPergCaracterNome do grupo de perguntas do dicionário de dados  
cGridCaracterNome da função que será executada caso o processamento permita processamento em grid  
lSaveLogLógicoIndica se permite a gravação de Log sempre que chamar o método SaveLog()  

 

 


Método de ativação da classe. Quando a classe é ativada a interface de
configuração é ativada.
Este método deve ser utilizado para parametrizar a classe.

 

FWGridProcess():Activate (oDlg) -->

 

Parâmetros
NomeTipoDescriçãoObrigatório Referencia
oDlgObjetoContainer da interface gráficaX 

 


 

Método de desativação da classe. Quando a classe é desativada, os dados
de configuração são perdidos e devem ser refeitos.
Este método deve ser utilizado para reparametrizar a classe.

 

FWGridProcess() :DeActivate () -->


SetMeters

Este método informa a classe a quantidade de réguas que será necessária no processamento da rotina.

 

FWGridProcess() :SetMeters (<nQtde>) -->

 

Parâmetros

NomeTipoDescriçãoObrigatórioReferencia
nQtdeNuméricoInforme a quantidade de réguas de processamento que a rotina necessitadaX 

Return nQtde

 


SetMaxMeter

Este método informa a classe a quantidade máxima de réguas que será necessários no processamento da rotina.

 

FWGridProcess() :SetMaxMeter (<nMax>,<nMeter>,<cMsg>) -->

 

Parâmetros


NomeTipoDescriçãoObrigatórioReferencia
nMaxNuméricoInforme a quantidade máxima de interações do meterX 
nMeterNuméricoInforme o numero de referência do meter  
cMsgCaracterInforme a mensagem de referência do meter  

 


SetIncMeter

Este método informa a classe a quantidade de réguas que será necessário no processamento da rotina.

 

FWGridProcess() :SetIncMeter (<nMeter>,<cMsg>) -->

 

Parâmetros

 

NomeTipoDescriçãoObrigatórioReferencia
nMeterNuméricoInforme o numero de referência do meter  
cMsgCaracterInforme a mensagem de referência do meter  

 


 

SetAfterExecute

Define bloco de código a ser executado no termino do Execute

 

Sintaxe

FWGridProcess() :SetAfterExecute (<bParam>) -->

 

Parâmetros

NomeTipoDescriçãoObrigatórioReferencia
bParamBlocoBloco de código a ser executado no termino do executeX 

 


SaveLog

Este método persiste informações de execução da rotina no log de processamento ( SXU ).

Sintaxe

FWGridProcess() :SaveLog (<cMsg>) -->

Parâmetros

NomeTipoDescriçãoObrigatórioReferencia
cMsgCaracterInforme a mensagem que deverá ser gravada no log  

 


GetLastLog

Retorna a ultima mensagem de log

Sintaxe

FWGridProcess() :GetLastLog() -->

Return cLog


SetNoParam

Inibe a widget de parametrização da rotina.

Sintaxe

FWGridProcess() :SetNoParam() -->

 


SetMaxThreadGrid

Este método configura o número máximo de threads que a rotina permitirá que o usuário configure.

Sintaxe

FWGridProcess() :SetMaxThreadGrid(<nMax>) -->

Parâmetros

NomeTipoDescriçãoObrigatórioReferencia
nMaxNuméricoNumero de threadsX 

 

 


SetThreadGrid

Este método configura o número de threads que a rotina terá disponível

Sintaxe

FWGridProcess() :SetThreadGrid(<nThread>) -->

 

Parâmetros

NomeTipoDescriçãoObrigatórioReferencia
nThreadNuméricoNumero de threadsX 

 

 


CallExecute

Este método inicia e controla o processamento da rotina de grid definida. Somente deve ser chamada se o Grid estiver configurado

Sintaxe

FWGridProcess() :CallExecute(<xParm0>,<xParm1>,<xParm2>,<xParm3>,<xParm4>,<xParm5>,<xParm6>,<xParm7>,<xParm8>,<xParm9>) -->

 

Parâmetros

NomeTipoDescriçãoObrigatórioReferencia
xParm0 Numérico, Caracter, Array, Data Parâmetro que será repassada para a rotina de grid  
xParm1 Numérico, Caracter, Array, Data  Parâmetro que será repassada para a rotina de grid  
xParm2 Numérico, Caracter, Array, Data  Parâmetro que será repassada para a rotina de grid  
xParm3 Numérico, Caracter, Array, Data  Parâmetro que será repassada para a rotina de grid  
xParm4 Numérico, Caracter, Array, Data  Parâmetro que será repassada para a rotina de grid  
xParm5 Numérico, Caracter, Array, Data  Parâmetro que será repassada para a rotina de grid  
xParm6 Numérico, Caracter, Array, Data  Parâmetro que será repassada para a rotina de grid  
xParm7 Numérico, Caracter, Array, Data  Parâmetro que será repassada para a rotina de grid  
xParm8 Numérico, Caracter, Array, Data  Parâmetro que será repassada para a rotina de grid  
xParm9 Numérico, Caracter, Array, Data  Parâmetro que será repassada para a rotina de grid  


Retrun lEnd

Indica que a rotina foi interrompida pelo usuário

 


Execute

Este método inicia e controla o processamento das rotinas especificadas

 

 

Sintaxe

FWGridProcess() :Execute() -->

 


StopExecute

Este método interrompe a execução da rotina a qualquer momento depois de iniciada pelo Método Execute.

Sintaxe

FWGridProcess() :StopExecute() -->


IsFinished

Este método indica que a rotina de processamento esta terminada.

Sintaxe

FWGridProcess() :IsFinished() -->

Return  lRetorno

Indica que o processamento foi terminado 


SetAbort

 

Este método informa a classe de processamento se a rotina pode ou não ser interrompida durante a execução

Sintaxe

FWGridProcess() :SetAbort(<lAbort>) -->

 

Parâmetros

NomeTipoDescriçãoObrigatórioReferencia
lAbortLógicoInforme um valor lógico para indicar se a rotina pode ser abortadaX 

 

Return lAbort

 




Exemplo
User Function testeba()
RpcSetEnv("99","01")
__cInterNet := Nil
oGrid:=FWGridProcess():New("MATA330","teste","teste do processamento",{|lEnd| u_testeba1(oGrid,@lEnd)},"MTA330","u_testeba2")
oGrid:SetMeters(2)
oGrid:SetThreadGrid(5)
oGrid:Activate()
If oGrid:IsFinished()
alert("fim")
Else
alert("fim com erro")
EndIf
Return
User Function Testeba1(oGrid,lEnd)
Local nX,nY
oGrid:SetMaxMeter(4,1,"teste1")
For nX := 1 To 4
oGrid:SetMaxMeter(10,2,"teste2")
For nY := 1 To 10
If !oGrid:CallExecute("callexecute is load",Iif(nX==5.And.nY==10,0,1))
lEnd := .T.
EndIf
oGrid:SetIncMeter(2)
If lEnd
Exit
EndIf
Next nY
If lEnd
Exit
EndIf
oGrid:SetIncMeter(1)
Next nX
Return
//Exemplo de uso de sem Grid
User Function Testebc2(oGrid,lEnd)
Local nX,nY
oGrid:SetMaxMeter(4,1,"teste1")
For nX := 1 To 4
oGrid:SetMaxMeter(10,2,"teste2")
For nY := 1 To 10
oGrid:SetIncMeter(2)
If lEnd
Exit
EndIf
Sleep(1000)
Next nY
If lEnd
Exit
EndIf
oGrid:SetIncMeter(1)
Next nX
Return
User Function Testeba2(cParm,lErro)
Sleep(10000)
Return(.T.)