Quando vou incluir um lançamento na tabela, botao Incluir não e disparado. Nao acontece nada. Ja comparei com outros fontes basicos do mvc e nao encontro qual o problema.
Quando vou incluir um lançamento na tabela, botao Incluir não e disparado. Nao acontece nada. Ja comparei com outros fontes basicos do mvc e nao encontro qual o problema.
Daniela,
No MVC o nome do fonte é de grande importância.
Se seu fonte tem o nome TVTBAUX
, você precisa fazer o FWLoadModel
com esse mesmo nome.
Então na função ViewDef
, você corrigiria da seguinte forma:
Local oModel := FWLoadModel("TVTBAUX")
Assim como o MenuDef
:
ADD OPTION aRot TITLE 'Visualizar' ACTION 'VIEWDEF.TVTBAUX' OPERATION MODEL_OPERATION_VIEW ACCESS 0 //OPERATION 1
ADD OPTION aRot TITLE 'Legenda' ACTION 'u_zMod1Leg' OPERATION 6 ACCESS 0 //OPERATION X
ADD OPTION aRot TITLE 'Incluir' ACTION 'VIEWDEF.TVTBAUX' OPERATION MODEL_OPERATION_INSERT ACCESS 0 //OPERATION 3
ADD OPTION aRot TITLE 'Alterar' ACTION 'VIEWDEF.TVTBAUX' OPERATION MODEL_OPERATION_UPDATE ACCESS 0 //OPERATION 4
ADD OPTION aRot TITLE 'Excluir' ACTION 'VIEWDEF.TVTBAUX' OPERATION MODEL_OPERATION_DELETE ACCESS 0 //OPERATION 5
Além disso, sua ViewDef
, parece ter um erro na leitura da estrutura:
Local oStSZ6 := FWFormStruct(2, "SX6") //pode se usar um terceiro parâmetro para filtrar os campos exibidos { |cCampo| cCampo $ 'SZZ1_NOME|SZZ1_DTAFAL|'}
Pelo restante do fonte, acredito que os segundo parâmetro deveria ser "SZ6"
.
Obs: Claro, também seria possível alterar o nome dos eu fonte para zModel1
.
Para evitar esse tipo de problema, é comum adotarmos o nome da função principal com o mesmo nome do fonte, não é uma regra, mas ajuda muito.
Eu escrevi um artigo sobre MVC, com um exemplo assim, bem simples, pode lhe ajuda: https://medium.com/totvsdevelopers/protheus-mvc-72901b7efc8a
Muito obrigada pelo retorno Daniel. Sou iniciante no MVC e realmente havia alguns conceitos que não estava a par. Por exemplo quando vc não usa o modelo já existente e tem que colocar o comando FWFromModel no caso do ModelDef. Também existia a referência da tabela SX7 que estava errada, realmente era a SZ7. Acabei conseguindo operar o código e funcionou, mas o que achei estranho é que repliquei o código para uma outra tabela e agora está dando erro. Mas estou desconfiada que seja algo em relação aos campos dessa tabela que estão como obrigatíorios.
Estou apanhando um pouco, mas estou feliz que um dos fontes funcionou depois de dois dias batendo cabeça. Vou olhar o link do artigo e agradeço imensamente pela ajuda.
Se souber me dar uma dica sobre o erro abaixo, eu agradeço: THREAD ERROR ([3036], Administrador, DESKTOP-2EL4LB2) 24/07/2020 13:57:03 argumento #3, parâmetrobCommiterro, previstoB->U on FWFORMMODEL:NEW(FWFORMMODEL.PRX) 24/08/2018 15:13:38 line : 296
ATT. Daniela
Você está trabalhando com a classe FWFormModel ou MPFormModel?
— Daniel Mendes 24 de Jul de 2020FWFormModel que estou usando
— Daniela Bondezan dos Reis 28 de Jul de 2020