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.
FWGridProcess(): New (<cFunName>,<cTitle>,<cDescription>,<bProcess>,<cPerg>,<cGrid>,<lSaveLog> ) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
cFunName | Caracter | Nome da rotina de menu de processamento | X | |
cTitle | Caracter | Titulo da rotina de menu | X | |
cDescription | Caracter | Descrição completa da rotina | X | |
bProcess | Bloco | Bloco de código de processamento. O bloco recebe a variavel que informa que a rotina foi cancelada | X | |
cPerg | Caracter | Nome do grupo de perguntas do dicionário de dados | ||
cGrid | Caracter | Nome da função que será executada caso o processamento permita processamento em grid | ||
lSaveLog | Lógico | Indica se permite a gravação de Log sempre que chamar o método SaveLog() |
FWGridProcess():Activate (oDlg) -->
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
oDlg | Objeto | Container da interface gráfica | X |
FWGridProcess() :DeActivate () -->
FWGridProcess() :SetMeters (<nQtde>) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
nQtde | Numérico | Informe a quantidade de réguas de processamento que a rotina necessitada | X |
Return nQtde
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
nMax | Numérico | Informe a quantidade máxima de interações do meter | X | |
nMeter | Numérico | Informe o numero de referência do meter | ||
cMsg | Caracter | Informe a mensagem de referência do meter |
FWGridProcess() :SetIncMeter (<nMeter>,<cMsg>) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
nMeter | Numérico | Informe o numero de referência do meter | ||
cMsg | Caracter | Informe a mensagem de referência do meter |
FWGridProcess() :SetAfterExecute (<bParam>) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
bParam | Bloco | Bloco de código a ser executado no termino do execute | X |
FWGridProcess() :SaveLog (<cMsg>) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
cMsg | Caracter | Informe a mensagem que deverá ser gravada no log |
FWGridProcess() :GetLastLog() -->
Return cLog
FWGridProcess() :SetNoParam() -->
FWGridProcess() :SetMaxThreadGrid(<nMax>) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
nMax | Numérico | Numero de threads | X |
FWGridProcess() :SetThreadGrid(<nThread>) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
nThread | Numérico | Numero de threads | X |
FWGridProcess() :CallExecute(<xParm0>,<xParm1>,<xParm2>,<xParm3>,<xParm4>,<xParm5>,<xParm6>,<xParm7>,<xParm8>,<xParm9>) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
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
FWGridProcess() :Execute() -->
FWGridProcess() :StopExecute() -->
FWGridProcess() :IsFinished() -->
Return lRetorno
Indica que o processamento foi terminado
FWGridProcess() :SetAbort(<lAbort>) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
lAbort | Lógico | Informe um valor lógico para indicar se a rotina pode ser abortada | X |
Return lAbort
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
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.) |