Home

TOTVS | Plataformas e tecnologias

Árvore de páginas

Índice

 

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. Nas páginas 7 e 8 da documentação oficial Guia de Referência Customização de Fichários.pdf disponível em <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:

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);
	}
}

Nota

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.