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 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) -->
Nome | Tipo | Descrição | Obrigatório | Referencia |
---|---|---|---|---|
oDlg | Objeto | Container da interface gráfica | X |
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 () -->
//Exemplo de uso de Grid
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.)