Histórico da Página
Portuguese | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Classe: tNewProcessCria uma tela de processamento, separada por janelas onde visualiza-se os Perguntes e o log de processamento, além dos parâmetros (SX6) e tabelas(SX5) da rotina (se houver). Ao confirmar o processamento, pode-se optar em exibir a régua de processamento da rotina.
MétodosNewMétodo construtor da classe tNewProcess. tNewProcess(): New ( < cFunction>, [ cTitle], < bProcess>, [ cDescription], [ cPerg], [ aInfoCustom], [ lPanelAux], [ nSizePanelAux], [ cDescriAux], [ lViewExecute], [ lOneMeter], [lSchedAuto] ) --> Nil
IncRegua1Altera mensagem exibida da primeira régua de processamento.
tNewProcess(): IncRegua1 ( [ cMsg] ) -->
IncRegua2Altera mensagem exibida da segunda régua de processamento.tNewProcess(): IncRegua2 ( [ cMsg] ) -->
SaveLogGrava log de processamento no SXU. tNewProcess(): SaveLog ( [ cText] ) -->
Exemplo: oProcess:SaveLog("Gravacao de log")
SetRegua1Seta primeira régua de processamento. tNewProcess(): SetRegua1 ( [ nSet] ) -->
oProcess:SetRegua1(1) SetRegua2Seta segunda régua de processamento. tNewProcess(): SetRegua2 ( [ nSet] ) -->
oProcess:SetRegua2(1)
|
Informações | ||
---|---|---|
| ||
|
TNewProcess simples
TNewProcess customizado
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "RWMAKE.CH" Static Function SchedDef() // aReturn[1] - Tipo // aReturn[2] - Pergunte // aReturn[3] - Alias // aReturn[4] - Array de ordem // aReturn[5] - Titulo Return { "P", "MTA410", "", {}, "tNewProc" } /*/{Protheus.doc} tNewProc Exemplo de implementação da classe tNewProcess com opção de processamento em segundo plano @type Function @author Bruno Pirolo @since 26/04/2024 @return nil /*/ Function tNewProc() Local bProcess := {|oSelf| Executa(oSelf) } Local cPerg := "MTA410" Local aInfoCustom := {} Local oProcess //Adiciona opções customizadas Aadd(aInfoCustom,{"Visualizar",{|oCenterPanel| visualiza(oCenterPanel)},"WATCH" }) Aadd(aInfoCustom,{"Relatorio" ,{|oCenterPanel| Relat(oCenterPanel) },"RELATORIO"}) //Instancia o objeto tNewProcess oProcess := tNewProcess():New("tNewPro" /*cFunction*/ ,; "Teste MsNewProcess" /*cTitle*/ ,; bProcess /*bProcess*/ ,; "Breve descrição da rotina" /*cDescription*/ ,; cPerg /*cPerg*/ ,; aInfoCustom /*aInfoCustom*/ ,; .T. /*lPanelAux*/ ,; 5 /*nSizePanelAux*/,; "Descrição do painel Auxiliar" /*cDescriAux*/ ,; .T. /*lViewExecute*/ ,; .F. /*lOneMeter*/ ,; .T. /*lSchedAuto*/) Return /*/{Protheus.doc} Executa Função de processamento @type Static Function @author Bruno Pirolo @since 26/04/2024 @param oProcess, object, Objeto da classe TNewProcess @return return_var, return_type, return_description @example (examples) @see (links_or_references) /*/ static Function Executa(oProcess) Local nCountC5 as numeric Local nCountC6 as numeric DbSelectArea("SC5") DbSetOrder(1) //Calcula a quantidade de registros na tabela SC5 count to nCountC5 //Posiciona no topo da tabela DbGotop() /*Define a quantidade de registros que serão processados na régua 1 (deverá corresponder exatamente a quantidade de chamadas do metodo IncRegua1)*/ oProcess:SetRegua1(nCountC5) //Percorre os registros da tabela SC5 While SC5->(!Eof()) //Incrementa a régua de processamento 1 oProcess:IncRegua1("Lendo Pedido de Venda:" + SC5->C5_NUM) DbSelectArea("SC6") DbSetOrder(1) //C6_FILIAL, C6_NUM, C6_ITEM, C6_PRODUTO //Elimina filtros criados na tabela SC6 DbClearFil() //Filtra os registros da SC6 Set Filter to SC6->C6_FILIAL == xFilial("SC5") .And. SC6->C6_NUM == SC5->C5_NUM //Calcula a quantidade de registros na tabela SC5 COUNT to nCountC6 //Posiciona no topo da tabela DbGotop() /*Define a quantidade de registros que serão processados na régua 2 (deverá corresponder exatamente a quantidade de chamadas do metodo IncRegua2)*/ oProcess:SetRegua2(nCountC6) While SC6->(!Eof()) //Incrementa a régua de processamento 2 oProcess:IncRegua2("Pedido: "+SC5->C5_NUM+" - Item: "+SC6->C6_ITEM) //Grava log do processo (estes dados serão apresentados na opção Log de Processos do componente) oProcess:SaveLog("Item: "+SC6->C6_ITEM) Conout("Pedido: "+SC5->C5_NUM+" - Item: "+SC6->C6_ITEM) SC6->(DbSkip()) End SC5->(DbSkip()) End Return /*/{Protheus.doc} visualiza Função de teste customizada @type Static Function @author Bruno Pirolo @since 26/04/2024 @param oCenterPanel, object, Objeto do Painel @return Nil /*/ Static Function visualiza(oCenterPanel) @ 65,10 Say "Visualiza" SIZE 80,10 OF oCenterPanel PIXEL Return /*/{Protheus.doc} Relat Função de teste customizada @type Static Function @author Bruno Pirolo @since 26/04/2024 @param oCenterPanel, object, Objeto do Painel @return Nil /*/ Static Function Relat(oCenterPanel) @ 65,10 Say "Relatorio" SIZE 80,10 OF oCenterPanel PIXEL Return |