É possivel deixar um campo readonly de acordo com o conteúdo de outro campo ? Preciso habilitar ou desabilitar a edição de um campo se outro campo for preenchido.
É possivel deixar um campo readonly de acordo com o conteúdo de outro campo ? Preciso habilitar ou desabilitar a edição de um campo se outro campo for preenchido.
Você pode configurar a edição do campo em um cadastro MVC de duas formas:
1) Através do Configurador, edite o campo desejado e informe a regra de edição do mesmo no campo Modo Edição.
Digamos que o nome do seu campo seja ZRG_TIPO e você deseja que ele esteja desabilitado caso o campo ZRG_CLIENT esteja preenchido. Dessa forma, seu modo de edição do campo ZRG_TIPO deve ser preenchido da seguinte maneira:
Empty(FwFldGet('ZRG_CLIENT'))
Essa configuração irá ser aplicada em qualquer cadastro/tela que utilize a tabela/campo em questão.
2) Opcionalmente, você pode configurar isso diretamente no modelo do seu fonte MVC, dentro da função ModelDef.
Exemplo:
oStruct := FwFormStruct(1, 'ZRG')
oStruct:SetProperty('ZRG_TIPO', MODEL_FIELD_WHEN, { || Empty(FwFldGet('ZRG_CLIENT')) })
Porém, desta forma, essa configuração ficará restrita apenas ao seu cadastro MVC, não sendo obedecida em outras telas ou cadastros que utilizem o campo em questão.
Documentação: https://tdn.totvs.com/display/public/framework/FWFormModelStruct
Sim, estou trabalhand na segunda opção, mas dessa maneira a mudança só acontece na hora que o modelo é ativado, eu preciso mudar isso dentro do cadastro, ou seja na hora da ediçao.
— Silfar Castro 24 de Mar de 2023A segunda opção irá funcionar dentro do cadastro também, seja em edição ou inclusão. No seu caso a configuração não está sendo aplicada?
— Giordano Trabach Xavier 24 de Mar de 2023Não, me parece que ele só atribui a propriedade na ativação do modelo. Se eu aterar o campo que define se o campo alvo vai ser editavel ou não ele não atualiza a propriaedade.
— Silfar Castro 24 de Mar de 2023Lembrando que é um mvc tipo 2 e a validação é de um campo na grid.
— Silfar Castro 24 de Mar de 2023