Fala galera,
Tive problemas em encontrar uma solução para preencher um campo autocomplete no onChange de outro campo, buscando aqui no fórum vi muitas pessoas com o mesmo problema e sem solução.
Eu encontrei uma solução e venho aqui compartilhar com todos.
Meu caso:
Inclusão de itens de uma Nota Fiscal(produtos) em um form Grid Editável(view).
campos: {idProduto}, {idUnidade}, {valor}, {quantidade}.
Criei o campo {descricao} que será meu autocomplete, no meu caso não armazeno ele no Banco pois o idProduto é o suficiente para mim.
Criei o campo {linha} que recebe no onLoadRecord o número da linha pela variável “$sc_seq_vert”;
Método Javascript:
Define o nome como “defineDescricao” com dois parâmetros($desc, $linha). Os nomes dos parâmetros falam por si.
document.getElementById(“id_sc_field_descricao_”+linha).value = desc; // “id_sc_field_descricao_X” essa é a ID do campo Autocomplete onde X é a linha da Grid Editável.
document.getElementById(“id_ac_descricao_”+linha).value = desc; // “id_ac_descricao_X” essa é a ID do campo Autocomplete que fica Oculto onde X é a linha da Grid Editável.
Evento onChange do campo {idProduto}:
sc_lookup(des,“SELECT descricao FROM produtos WHERE id = {idProduto}”);
// Call javascript function
$a = {des[0][0]};
$b = {linha};
sc_ajax_javascript(‘defineDescricao’, array($a, $b));
Obs: Como o campo Autocomplete não grava no Banco devo colocar no evento onLoadRecord o valor inicial do campo:
sc_lookup(des,“SELECT descricao FROM produtos WHERE id = {idProduto}”);
{descricao} = {des[0][0]};
Já fui muito ajudado aqui no Fórum e por isso estou tentando ajudar também. É a minha primeira contribuição galera, críticas e melhorias a solução apresentada são bem vindas.