Utilizando FWAlert para exibir mensagens no Protheus

Hoje vou mostrar as “novas” mensagens de alerta para se utilizar via AdvPL.

Pessoal, como sabem via AdvPL existem inúmeras funções para mostrar mensagens, como Alert, Aviso, MsgInfo, etc… Mas existem algumas funções “novas”, e no artigo de hoje irei citar exatamente essas.

Elas não são bem novas, porém são bem mais recentes que as antigas funções (MsgInfo, MsgStop, MsgAlert, etc). Pois bem, abaixo uma pequena descrição de cada uma:

  • FWAlertError: Mostra uma mensagem com um círculo vermelho e um x no meio
  • FWAlertExitPage: Mostra uma pergunta com 3 opções (Continuar editando, Salvar, Sair da Página)
  • FWAlertHelp: Mostra uma mensagem de help e solução
  • FWAlertInfo: Mensagem informativa com um círculo azul e um i no meio
  • FWAlertNoYes: Mensagem que tem 2 opções (Não e Sim)
  • FWAlertSuccess: Mostra uma mensagem com um círculo verde e um ícone de check
  • FWAlertWarning: Mostra uma mensagem com um triângulo amarelo e uma exclamação no meio
  • FWAlertYesNo: Mensagem que tem 2 opções (Sim e Não)

Abaixo um print exemplificando:

Exemplos das mensagens

E abaixo, o código fonte desenvolvido:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zAlert
Testes com as funções de alerta da FWAlert
@type  Function
@author Atilio
@since 22/11/2020
@version version
/*/

User Function zAlert()
    FWAlertError("Mensagem de erro", "Título FWAlertError")
    FWAlertExitPage("Mensagem de navegação de página", "Título FWAlertExitPage")
    FWAlertHelp("Mensagem do problema", "Mensagem da solução - FWAlertHelp")
    FWAlertInfo("Mensagem informativa", "Título FWAlertInfo")
    FWAlertNoYes("Mensagem de pergunta Não / Sim", "Título FWAlertNoYes")
    FWAlertSuccess("Mensagem de sucesso", "Título FWAlertSuccess")
    FWAlertWarning("Mensagem de aviso", "Título FWAlertWarning")
    FWAlertYesNo("Mensagem de pergunta Sim / Não", "Título FWAlertYesNo")
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

14 Responses

  1. Marco Nagoa - Conectar disse:

    Dan, qual o difrencial das funções FwAlert?

  2. Marco Nagoa - Conectar disse:

    Tem alguma com barra de rolagem, pra quando o texto por grande, no caso de validações?

  3. Daniel Gonçalves Jr. disse:

    Grato pelas dicas.

  4. Marcelo disse:

    Bom dia , poderia dar exemplo de um alerta de saldo em estoque

    • Bom dia Marcelo, tudo joia?
      Não sei se entendi muito bem a pergunta, mas montei um exemplo, onde você tem uma variável com o Saldo, e mostra um alerta com esse saldo.
      Segue trecho:

      nSaldo := 0 //aqui você pode acionar funções como SaldoSB2() ou CalcEst() ... ou até mesmo fazer uma query SQL na SB2 ou SB8 buscando o saldo
      
      FWAlertInfo("O saldo do produto XPTO é " + cValToChar(nSaldo), "Saldo")
      
  5. Rafael disse:

    Parabéns pelo artigo 🙂

    Qual o comportamento dessas funções quando a execução é por job ou Schedule?

    Obrigado!

  6. LUCIANO DUARTE GUIMARAES FILHO disse:

    Dan, belo artigo!

    Como faço para criar um menu em que selecionado simplesmente abra uma mensagem dessa?

  7. WLADIMIR ILLIUSHENKO NASCIMENTO SANT ANNA disse:

    Dan, nos exemplos dados, há um de “Problema” e “Solução”. Neste caso qual seria a função FWAlert a ser utilizada?

    • Bom dia Wladimir, tudo joia?

      Para os casos onde mostra “Problema” e “Solução”, a tela que é acionada é a função Help(), ai você pode acioná-la de duas formas, ou direto via Help() ou através da ExibeHelp:

          Local cMensagem  := "Não foi encontrado parametrização para executar a rotina"
          Local cSolucao   := "Cadastre o parâmetro MV_X_PARAM"
          
          //Exibindo a mensagem com Help
          Help(, , "Help", , cMensagem, 1, 0, , , , , , {cSolucao})
      
          //Exibindo a mensagem com ExibeHelp
          ExibeHelp("Help", cMensagem, cSolucao)
      

      Um grande abraço.

Deixe uma resposta

Terminal de Informação