Alterar HELP padrão MVC

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, como você montou a mensagem?

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

2 curtidas

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??

parte 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

Consegui. Entendi agora como tem que ser feito. Obrigado.

Show Rafael. Parabens

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.