Boa Tarde. Eu coloquei um validador de campo na addfield() do FWFormModelStruct. Quando faço acontecer o erro ele mostra a minha mensagem e o Help padrão. Como faço para deixar apenas o meu Help. O Campo esta situado no cabeçalho.
Boa Tarde. Eu coloquei um validador de campo na addfield() do FWFormModelStruct. Quando faço acontecer o erro ele mostra a minha mensagem e o Help padrão. Como faço para deixar apenas o meu Help. O Campo esta situado no cabeçalho.
Rafael,
Ao utilizar a função Help
dentro de validações do MVC, ela automaticamente vai chamar o método SetErrorMessage
do modelo quando sua validação retornar um .F.
.
O que acontece bastante, é que o desenvolvedor cria uma mensagem própria de erro, alerta etc e usa funções como MsgInfo
, MsgAlert
, MsgStop
para exibir a mensagem ao usuário e retornar um .F.
na validação, com isso o MVC acaba exibindo um Help
vazio ou uma mensagem genérica de erro.
Por isso é muito importante a utilização da função Help
no MVC e até em outras rotinas, pois ela foi preparada para diversas situações, assim como quando é utilizado um ExecAuto
, o Help
é enviado para o log quando a rotina gera algum problema.
Boa tarde Rafael.
Seu HELP deve estar assim:
Help( ,, 'HELP',, 'Empenho Inválido', 1, 0)
Substitua o seu HELP pelo comando abaixo:
oModel:SetErrorMessage("","","","","HELP",'Empenho Inválido',"Escolha outro empenho")
Link da Documentação: https://tdn.totvs.com/display/PROT/FWFormModel
Mas como eu identifico a qual campo se refere?? Tem tres campos do cabeçalho coloquei um valid em um deles quando o usuário digitar um conteúdo que faz aparecer a mensagem como vai saber que é naquele campo??
— Rafael Schneider Sória 22 de May de 2020parte da função do valid ta assim: If nOpc == MODEL_OPERATION_INSERT DbSelectArea('SZ3') SZ3->(DbSetOrder(5)) //X5_FILIAL + X5_TABELA + X5_CHAVE
//Se conseguir posicionar, viagem já existe If SZ3->(DbSeek(XFILIAL("SA3")+cVend + cTBComis)) Help(NIL ,NIL, 'Help',NIL, 'Para o Vendedor e Tabela de Comissão digitado ja existe tabela de Comissão cadastrada.', 1, 0 , NIL, NIL, NIL, NIL, NIL, {"Efetuae o processo de Alteração."} ) lRet := .F. EndIf EndIf
RestArea(aArea) Return lRet
— Rafael Schneider Sória 22 de May de 2020Consegui. Entendi agora como tem que ser feito. Obrigado.
— Rafael Schneider Sória 22 de May de 2020Show Rafael. Parabens
— FELIPE CAIADO ALMEIDA 22 de May de 2020
Rafael, como você montou a mensagem?
— Daniel Mendes 21 de May de 2020