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.
Veja se consegue com o FWFldGet()
Exemplo: FWFldGet(“A1_COD”)
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”)
Tenta com o GetValue, considerando que já declarou o oModel:GetModel(“SA1MASTER”) >>>>>>> Exemplo: oModel:GetValue(‘A1_COD’)
Valeu Thiago, mas o problema era realmente que eu não havia ativado o modelo. Depois que usei oModel:Activate() funcionou! Valeu.
Está retornando o objeto oView, porém, está tentando acessar propriedades de oModel que declarou localmente na sua função estática. Para acessá-la não deveria referenciar o método primeiro? método.atributo.propriedade()
Na verdade estou tentando acessar o campo logo depois de carregar o modelo. Eu coloquei um breakpoint após a linha
Local oModel := FWLoadModel(“CRMA980”)
e tentei acessar o campo após isso, ele retorna nulo. Eu inspecionei o objeto oModel ele está trazendo as propriedades do modelo, como o CID = CRMA980. Mas não consigo acessar nenhum campo do model com o método GetValue do objeto oModel.