Gostaria de adicionar telas de carregamos em processamentos customizados para indicar que esta ocorrendo, melhorando a UX, vocês conhecem alguma função pronta ou algo do gênero?
Gostaria de adicionar telas de carregamos em processamentos customizados para indicar que esta ocorrendo, melhorando a UX, vocês conhecem alguma função pronta ou algo do gênero?
Boa tarde, Patrick!
A TOTVS disponibiliza algumas de forma padrão, são elas:
Processa -> https://tdn.totvs.com/pages/releaseview.action?pageId=6815094
Exibe apenas uma barra de carregamento e permite o cancelamento do processo. Deve ser feito o controle através da função ProcRegua (tamanho da barra de carregamento) e IncRegua (incrementa a barra de carregamento).
User Function TESTEPROC
Processa( { || fLoadData() }, 'Carregando...', 'Aguarde...')
Return
Static Function fLoadData
Local nI := 0
Local nRegua := 100
ProcRegua(nRegua)
For nI := 1 To nRegua
IncRegua()
Sleep(0500)
Next nI
Return
MsNewProcess -> https://tdn.totvs.com/display/public/PROT/MsNewProcess
Exibe duas barras de carregamento e permite o cancelamento do processo. Deve ser feito o controle através do método SetRegua1 e SetRegua2 (tamanho das réguas) e pelo método IncRegua1 e IncRegua2 (incremento da régua).
User Function TESTEPROC
Private oProcess as object
oProcess := MsNewProcess():New({ || fLoadData() }, 'Carregando...', 'Aguarde...')
oProcess:Activate()
Return
Static Function fLoadData
Local nI := 0
Local nO := 0
Local nAcima := 20
Local nBaixo := 100
oProcess:SetRegua1(nAcima)
oProcess:SetRegua2(nBaixo)
For nI := 1 To nAcima
oProcess:IncRegua1()
Sleep(0250)
For nO := 1 To nBaixo
oProcess:IncRegua2()
Sleep(0100)
Next nO
Next nI
Return
FwMsgRun -> https://tdn.totvs.com/display/public/PROT/FWMsgRun
Não é uma função que possui barra de carregamento, mas é muito útil para rotinas onde não é possível dimensionar seu andamento. É possível também criar esse componente acima de um Panel, para maior customização. Existe um exemplo bem bacana nesse link.
Relatórios TReport -> https://tdn.totvs.com/display/public/PROT/TReport
Em relatórios do tipo TReport, é possível controlar a régua de processamento através dos métodos SetMeter e IncMeter, que funcionam igual a função Processa.
Existem outras funções e métodos que podem ser usados para criação de componentes de processamento, mas acredito que esses são os mais conhecidos e mais fáceis de usar.
Caramba, perfeita explicação, muito obrigado!
— Patrick Zerbinatti 30 de Aug de 2019Ótima resposta Giordano! Parabéns!
— Daniel Mendes 01 de Sep de 2019Fala galera.
Um detalhe é que, exceto a FWMsgRun, todas as demais funções para processamento quebram o tlpp no tamanho de variáveis maiores que 8 caracteres. cuidado com isso.