Tenho um formulário onde em cada atividade um usuário pode ver os campos dos demais usuários preenchidos, porém não pode alterá-los. Gostaria que em uma determinada tarefa, o usuário responsável por ela, pudesse ver o campo e os demais não pudessem. Tentei fazer isso pelo displayFields mas dava erro no ficheiro, devo ter errado a sintaxe ou a lógica.
No displayFields, estou utilizando dessa maneira:
if(atividade != 45){
form.setVisbleById("txObservacoes_avQualidadeInt", false);
}
pois gostaria que quando não fosse essa atividade, ninguém pudesse ver o campo.
Esse campo do usuário, é um campo fixo? Não está em tabela pai x filho? É Apenas um campo, ou são mais?
Sim, é um campo fixo.
Não está na tabela pai x filho.
É apenas um campo.
Tente criar uma relação entre o campo e o usuário. Por exemplo:
O campo Produto só pode ser editado pelo Cliente o Preço só pode ser editado pelo vendedor.
Eu faria a criação de um input com type="hidden"
, com o nome "hdi_produto". Assim, pelo jQuery eu pegaria na ultima pessoa que editou tal campo no começo do processo (utilizando o evento .change(function(){});
do jQuery) e armazenaria o login do usuario no input hidden, assim eu criaria uma relação do campo para o usuário, pra então, no displayFields, setaria para todos os campos ficarem ocultos, e em determinada atividade (getValue("WKNumState")
) verificaria o (getValue("WKUser")
) para saber qual campos devo exibir.
Exemplo de como setar o valor do usuario no input hidden de campo usando jQuery:
$("#Produto").change(function(){
$("#hdi_produto").val(usuario);
});
Observação: Você não consegue obter o usuário utilizando o arquivo JavaScript criado, apenas em eventos, como displayFields. Então, basta criar mais um input do tipo hidden para armazenar o usuário, assim, no incio do seu arquivo JavaScript, você pega o valor do input do usuário:
No evento displayFields:
form.setValue("hdi_usuario", getValue("WKUser");
No seu arquivo JavaScript:
var usuario = $("#hdi_usuario").val();
Espero ter entendido seu problema, e que tenha formulado uma boa resposta. Qualquer dúvida, estou à disposição. Obrigado.