Home

TOTVS | Plataformas e tecnologias

Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone

 

Plataforma

Produto:  ECM

 

Ocorrência

Em um determinado fluxo, dependendo da tarefa alguns campos são exibidos normalmente e outros são exibidos desabilitados. No evento displayFields, utilizei o método form.setShowDisabledFields(true) ; e habilitei os campos específicos da tarefa, mas quando abro o formulário todos os campos estão habilitados.

O método form.setShowDisabledFields(true) ; sendo utilizado antes do form.setEnabled não funciona? Existe alguma alternativa? 

Como obter uma lista com o nome de todos os campos do formulário para eu inabilitar todos em um loop e depois habilitar apenas os necessário depois?

 

Solução

Verificamos que o método form.setShowDisabledFields() tem efeito apenas quando o formulário é carregado no modo de visualização. Na página Nas páginas 7 e 8 da documentação oficial Guia de Referência Customização de Fichários.pdf disponível em <install_ecm><ECM>\docs-ECM\Documentos de Customizacao\pt , são disponibilizados mais detalhes sobre esta função.

Para desabilitar ou habilitar todos os campos, utilize o método form.getCardData() que retorna um Mapa com todos os campos e valores do formulário. Em seguida, utilize o método form.getCardData().keySet() para obter o nome dos campos e crie um laço de repetição para habilitar ou desabilitar, utilizando o form.setEnabled().

Abaixo segue um exemplo:

 

Bloco de código
languagejs
linenumberstrue
function displayFields(form,customHTML){
	
	var habilitar = false; // Informe True para Habilitar ou False para Desabilitar os campos
	var mapaForm = new java.util.HashMap();
	mapaForm = form.getCardData();
	var it = mapaForm.keySet().iterator();
	
	while (it.hasNext()) { // Laço de repetição para habilitar/desabilitar os campos
		var key = it.next();
		form.setEnabled(key, habilitar);
	}
}

 

...

Informações
titleNota

Este é apenas um exemplo de como obter a lista de campos de um formulário e com o método form.setEnabled(), habilitá-los ou desabilitá-los. Existem outras alternativas para obter este mesmo resultado, caberá ao desenvolvedor verificar a maneira mais adequada ao seu projeto.