Em uma tela MVC, ao clicarmos no botão FECHAR, aparece essa tela com as opções ("Continuar Editando","Salvar","Sair da Página"). Existe algum método que possamos inibir essa telinha e fechar o formulário diretamente? Ou até então, inibir o botão 'Salvar' desta telinha?
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Essa mensagem é exibida somente se houve alguma alteração em seu modelo, não é possível remover a mesma.
Caso nenhuma alteração tenha sido efetuada em tela, significa que o seu modelo está sendo alterado de alguma forma antes da view ser aberta, essa alteração pode estar sendo executada por conta de alguma condição no dicionário, ponto de entrada ou diretamente no código fonte.
Daniel, o problema é que na minha tela eu tenho várias validações, que são acionadas ao clicar no botão Confirmar. Daí, se eu alterar o alguma coisa, por exemplo digitar algo inválido e clicar no botão Fechar, vai aparecer a telinha com as três opções e uma delas é Salvar. Esse botão salvar não executa as validações do TudoOK do modelo entende? Logo o usuário grava um registo completamente inválido, pois não ter passado por nenhuma validação. Por isso eu queria uma forma de inibir aquele botão Salvar ou até então chamar todas as validações do modelo nele.
Já me vi nesta situação a um tempo atrás, senão me falha a memória atuei de forma que no commit identifica-se se ele havia passado pelas validações necessárias, caso não, retornava False na rotina, não realizava a gravação e não permitia sair da tela! Desta maneira o usuário da rotina não conseguiria prosseguir sem fazer o procedimento correto!
A solução para meu problema foi a seguinte:
A rotina era chamada pela função FWExecView, passando os parâmetros assim como a função de validação geral da tela:
FWExecView( AllTrim(FwFilialName()) , “EXEMPLO1”, MODEL_OPERATION_INSERT, , { || .T. },{||u_VldGravacao()} )
Então, dentro do modelo, na declaração do mesmo, adicionei uma função no TudoOk: oModel := MPFormModel():New(‘MYMVC01R’,{ | | fTudoOk( FwModelActive() ) } )
E dentro dessa função ‘fTudoOk’ eu chamei a função de validação geral: u_VldGravacao(). Dessa forma, o botão ‘Salvar’ da telinha executa as validações do modelo.