Acessando os campos do model da nova rotina de cadastro de clientes - CRMA980

Em uma customização, estou querendo exibir a nova tela de cadastro de clientes em MVC da rotina CRMA980.

Estou usando FWExecView para chamar a View estabelecida em meu fonte

FWExecView("Confirmação de cadastro","MEU_FONTE_CUSTOMIZADO",MODEL_OPERATION_INSERT,,{|| .T.})

A função viewdef está assim no fonte referenciado no FWExecView

Static Function ViewDef()
    Local oView 

    Local oModel := FWLoadModel("CRMA980")        

    oView := FWLoadView("CRMA980")    

    oView:SetModel(oModel)        

return oView

A tela em MVC é aberta, porém em meu código não consigo utilizar GetValue para pegar o valor dos campos.

Ex, esse código retorna nulo

oModel:GetValue("SA1MASTER","A1_COD")

Eu peguei o nome do ID do modelo (SA1MASTER) com o método oModel:GetDependency().

Também tentei e não tive resultado

oModel:GetValue("CRMA980","A1_COD")

Edit

O que estava faltando era essa linha

oModel:Activate()

Sem ativar o modelo não é possível usar o método GetValue. Agora está funcionando.

compartilhar
  • Veja se consegue com o FWFldGet() Exemplo: FWFldGet("A1_COD")

    thiago.andrrade   30 de May de 2022
  • Opa. Tentei sua sugestão, ainda retornando nulo. Tentei oModel:FWFldGet("A1_COD") e FWFldGet("A1_COD") somente. Também tentei oModel:GetModel("SA1MASTER"):FWFldGet("A1_COD")/ oModel:GetModel("CRMA980"):FWFldGet("A1_COD")

    Thyago   30 de May de 2022
  • Tenta com o GetValue, considerando que já declarou o oModel:GetModel("SA1MASTER") >>>>>>> Exemplo: oModel:GetValue('A1_COD')

    thiago.andrrade   31 de May de 2022
  • Valeu Thiago, mas o problema era realmente que eu não havia ativado o modelo. Depois que usei oModel:Activate() funcionou! Valeu.

    Thyago   01 de Jun de 2022
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags mvc advpl ou faça a sua própria pergunta.