Deletar itens do Grid mas não o Form no MVC

Boa noite!

Prezados, estou com uma dúvida referente ao comportamento do MVC.

Possuo uma tela onde o usuário pode excluir todos os dados do Grid, mas não pode excluir o Form ao executar a opção Excluir do Browse.

O Grid utiliza uma tabela customizada minha enquanto o Form utiliza a tabela de vendedores (SA3), por este motivo ele não deve excluir a SA3, apenas o conteúdo da tabela customizada.

O MVC possui algum controle nativo para efetuar essa validação?

Atualmente eu alterei a chamada do bCommit do MpFormModel, conforme exemplo abaixo:


If(nOpc == MODEL_OPERATION_DELETE)

    For nX := 1 To oGrid:GetQtdLine()

        oGrid:GoLine(nX)
        ZR4->(DbGoTo(oGrid:GetDataID()))

        RecLock('ZR4',.F.)
            ZR4->(DbDelete())
        ZR4->(MsUnlock())

    Next

Endif

Agradeço pela atenção.

Bom dia Giordano,

Verifique se o método setOnlyQuery atende essa situação da SA3, veja essa documentação sobre esse método:

http://tdn.totvs.com/display/public/PROT/FWFormModel

Caso esse método não atenda sua situação, o ideal era rever o MER dessa sua tabela, talvez criando uma ZR3, sendo o field da ZR4, sendo que o código e chave da ZR3 seria o mesmo da SA3... Aí para manter os dados íntegros, você usaria de algum ponto de entrada para que uma exclusão na SA3 também verifica e exclua os registros da ZR3 e ZR4. Dessa forma não seria necessário sobrescrever o bloco de commit do modelo.

Bom dia, Daniel! Este método me atendeu perfeitamente. Muito obrigado!