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. Sintaxe MsNewProcess(): New ( [ bAction], [ cTitle], [ cMsg], [ lAbort] ) Parâmetros bAction = Bloco de código = Bloco de código a ser executado pela janela cTitle = Caracter = Título a ser apresentado na janela cMsg = Caracter = Mensagem apresentada ao usuário na primeira barra de processamento lAbort = Lógico = Caso 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. 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. Métodos Activate Cria a janela onde serão apresentadas as barras de processamento. Sintaxe 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. Sintaxe MsNewProcess(): IncRegua1 ( [ cMsg] ) Parâmetros Nome Tipo Descrição cMsg Caracter Texto 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. Sintaxe MsNewProcess(): IncRegua2 ( [ cMsg] ) Parâmetros Nome Tipo Descrição cMsg Caracter Texto 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. Sintaxe MsNewProcess(): SetRegua1 ( [ nSet] ) Parâmetros Nome Tipo Descrição nSet Numérico Quantidade 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. Sintaxe MsNewProcess(): SetRegua2 ( [ nSet] ) Parâmetros Nome Tipo Descrição Obrigatório Referência nSet Numérico Quantidade de registros a serem processados pela rotina
User function Relatorio() Private oProcess oProcess := MsNewProcess():New( { || fProcessa() } , "Imprimindo Relatório" , "Aguarde..." , .F. ) oProcess:Activate() Return Static function fProcessa() //Seu codigo //sua primeira query oProcess:SetRegua1( (cAlias1)->(RecCount()) ) //Alimenta a primeira barra de progresso //seu código While (cAlias1)->(!Eof()) //processamento da primeira barra de progresso oProcess:IncRegua1("Processando primeira barra de progresso") //seu codigo //Sua segunda query oProcess:SetRegua2( (cAlias2)->(RecCount()) ) //Alimenta a segunda barra de progresso //seu codigo While (cAlias2)->(!Eof()) //processamento da segunda barra de progresso oProcess:IncRegua2("Processando segunda barra de progresso") //seu codigo (cAlias2)->(dbSkip()) EndDo (cAlias1)->(dbSkip()) EndDo Return