Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmentos - TOTVS Backoffice (Linha Protheus) - ADVPL - Função Fwmsgrun não atualiza as mensagens em tempo de execução

time.pngTempo aproximado para leitura: 00:03:00 min

Ocorrência
Na documentação da função FwMsgRun() consta a seguinte afirmativa: "permite atualizar o texto em tempo de execução", todavia ao utilizar as propriedades cTitle, cCaption ou o método SetText(), a caixa de diálogo não está sendo atualizada.

Ambiente
Cross Segmentos - Backoffice (Linha Protheus) – ADVPL – A partir da versão 11.80

Causa
A não atualização ocorre pelo congelamento do SmartClient durante a execução de um processo longo.

Solução
Utilizar a função ProcessMessages().

Fonte

// BIBLIOTECAS NECESSÁRIAS
#Include "TOTVS.ch"

// FUNÇÃO PRINCIPAL
User function T151FWMSG()
Local oSay := NIL // CAIXA DE DIÁLOGO GERADA

// GERA A TELA DE PROCESSAMENTO
FwMsgRun(NIL, {|oSay| RunMessage(oSay)}, "Processing", "Starting process...")
Return (NIL)

// FUNÇÃO PARA ALTERAÇÃO DA MENSAGEM
Static Function RunMessage(oSay)
Local nX := 0 // CONTROLE CONTADOR DO LAÇO

// SIMULA A PREPARAÇÃO PARA EXECUÇÃO
Sleep(2000)

// LAÇO COM PAUSA DE UM SEGUNDO PARA SIMULAÇÃO
For nX := 1 To 10
oSay:SetText("Working at: " + StrZero(nX, 6)) // ALTERA O TEXTO CORRETO
ProcessMessages() // FORÇA O DESCONGELAMENTO DO SMARTCLIENT

Sleep(1000) // SIMULA O PROCESSAMENTO DA FUNÇÃO
Next nX
Return (NIL)


Saiba mais
FWMsgRun
ProcessMessage

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

4 Comentários

  • Avatar
    João Vitor Ribeiro Santos

     

    O Nome correto da rotina é ProcessMessages() e não ProcessMessage()

    2
    Ações de comentário Permalink
  • Avatar
    Guilherme Bigois

    João Vitor Ribeiro Santos, o nome correto é ProcessMassage() mesmo, vide documentação: https://tdn.totvs.com/display/tec/ProcessMessage

    -3
    Ações de comentário Permalink
  • Avatar
    João Vitor Ribeiro Santos

    Já usou a mesma ? Pois ao usar ProcessMassage() o mesmo ocorre error.log.

    2
    Ações de comentário Permalink
  • Avatar
    Thiago Andrade Barros

    Mesmo cenário do @João Vitor Ribeiro Santos, só foi possível encontrar a função ProcessMessages().

    1
    Ações de comentário Permalink
Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _