Formulário MVC entrando com Status de Alteração

Criei uma tela de pré-cadastro para o usúario avaliar. Já entra em modo de alteração, porém o usuário tem que obrigatoriamente alterar algo porque se clicar no botão Confirmar dá mensagem que nada foi alterado. Temo como entrar no formulário já como se o usuário tivesse feito alguma alteração.

Bom dia,

A função alterar do MVC valida se foi alterado alguma informação, se o usuário não alterar nada a informação aparecerá, mas qual sentido da mensagem não aparecer se ele não alterou nada ?

Olá Tiago, a rotina é um pré-cadastro com dados que foram importados da Web. As vezes, depois da importação, o pré-cadastro está simplesmente correto, não há nada a ser alterado. Neste caso seria clicar no botão confirmar e seguir o processo, porém como não tem nada para alterar, o usuário tem que fazer alguma alteração(e apagar), e clicar no botão Confirmar, daí funciona, mas não quero que seja necessário fazer isso.

Boa tarde, Luciano!

Caso você realmente use o modo Alteração, você terá que "forçar" alguma modificação no modelo para que a mensagem não seja exibida.

Você pode forçar essa alteração em um campo existente ou criar um campo no modelo para essa finalidade.

Segue exemplo criando um campo no modelo e forçando a alteração nele:

Adicione no ModelDef


// Criando o campo virtual
oStruGrid:AddField('', '', 'ZTD_BRANCO', 'C', 5, 0, Nil, Nil, Nil, Nil, { || '' } , Nil, Nil, .T. )

// Forçando uma ação ao ativar o modelo
oModel:SetActivate({ |oModel| fModifyMdl(oModel)})

Adicione na ViewDef


oStruGrid:AddField('ZTD_BRANCO', '99', '', '', {''}, 'C', '@!', Nil, '', .F., Nil, Nil, Nil, Nil, Nil, .T., Nil, Nil)

Função que será chamada ao ativar o modelo:


Static Function fModifyMdl(oModel)

    If(oModel:GetOperation() == MODEL_OPERATION_UPDATE)

        FwFldPut('ZTD_BRANCO', 'X', , oModel)

    EndIf

Return

Observação: Necessário avaliar a condição usada dentro função executada ao ativar o modelo. Lembre-se que ela será disparada toda vez que isso acontecer, seja inclusão, visualização, etc.

Giordano, obrigado funcionou perfeitamente.