Senhores Boa Noite,
Eu criei uma tela modelo 1 em MVC e queria ocultar um determinado campo, ao clicar em incluir por exemplo esse campo não pode aparecer no cadastro pois vou usar ele para um controle interno, é possível?
Obrigado.
Senhores Boa Noite,
Eu criei uma tela modelo 1 em MVC e queria ocultar um determinado campo, ao clicar em incluir por exemplo esse campo não pode aparecer no cadastro pois vou usar ele para um controle interno, é possível?
Obrigado.
Eraldo,
Você pode remover o campo com o método RemoveField
da classe FWFormViewStruct
, ou seja, o objeto que é retornando após você usar a função FWFormStruct
com o tipo (nType
) 2:
static function viewDef()
local oView as object
local oViewStruct as object
oViewStruct := FwFormStruct(2, "ALIAS")
oStruZZ3:removeField("MEU_CAMPO")
//Restante do código
return oView
Não é recomendado remover o campo do modelo, pois isso pode gerar exceções, como você mesmo disse, você pretende ocultar esse campo e ter um controle interno sobre ele, se você remover ele do modelo, não vai conseguir trabalhar com os método getValue
e setValue
.
Dito isso, não é possível efetuar esse controle somente via inclusão, pois quando as funções modelDef
e viewDef
são chamadas, ainda não foi setado nos objetos qual opção (operação) está sendo executada.
Se você deseja ocultar somente na inclusão, você teria que ter uma view apartada desse model, apenas para a inclusão, isso é possível, você teria uma view para inclusão e outra para as demais operações. Outra opção seria deixar o campo visível e desabilitado.
Documentações:
Eraldo bom dia.
Pode fazer isso de duas formas, colocar ele como "não visual" ou remover ele no modeldef conforme o exemplo abaixo:
oStruZZ3:RemoveField("ZZ3_TPATES")
Bom Dia Felipe, tudo bem?
Perfeito vou usar esse comando então pra remover ele.
Obrigado.
— Eraldo Bacchin 18 de Jun de 2021