Zoom não mostra campos no setSelectedZoomItem

Olá pessoal,

Alguém já teve problema com zoom que não retorna os campos do dataset no evento setSelectedZoomItem ?

O zoom que está com problema é o de fornecedores, só retorna o campo NomeDoc e o CodFornecedor, que são o display member e value member, sendo que existem outros campos no dataset.

Tenho outros zoons também, por exemplo o de motorista,nele aparecem todos os campos (cpf, rg, cnh etc...) quando eu chamo o selectedItem[""]:

Já verifiquei o dataset do fornecedor e ele está trazendo normalmente todos os campos, já esmiucei o dataset e cheguei na conclusão que o problema não é ele.

Segue a function:

function setSelectedZoomItem(selectedItem) { if(selectedItem.inputId == "psqProduto") { let codProduto = selectedItem["COD"]; let descricao = selectedItem["DESCR"];

$('#hidden_psqProduto_cod').val(codProduto); $('#hidden_psqProduto_desc').val(descricao);

}

if(selectedItem.inputId == "psqFornecedor") { let codFornecedor = selectedItem["CodFornecedor"]; let nome = selectedItem["RazaoSocial"]; //retorna undefined let loja = selectedItem["Loja"]; //retorna undefined

$('#hidden_psqFornecedor').val(codFornecedor); $('#hidden_fornecedorNome').val(nome); $('#hidden_fornecedorLoja').val(loja); //window["psqFornecedor"].setValue(razaoSocial + " - " + doc);

}

if(selectedItem.inputId == "psqTransportad") { let codTransportadora = selectedItem["CodTransportadora"]; $('#hidden_psqTransportad').val(codTransportadora); if (codTransportadora != "") { $("#inte_trans").val("N") } else { $("#inte_trans").val("S") }

}

if(selectedItem.inputId == "psqMotorista") { let codMotorista = selectedItem["CodMotorista"]; $('#hidden_motoristaCodigo').val(codMotorista); if (codMotorista != "") { $("#inte_moto").val("N") } else { $("#inte_moto").val("S") }

let nome = selectedItem["NomeMotorista"]; $('#hidden_motoristaNome').val(nome);

let rg = selectedItem["RG"]; $('#hidden_motoristaRG').val(rg);

let cpf = selectedItem["CPF"]; $('#hidden_motoristaCPF').val(cpf);

let cnh = selectedItem["CNH"]; $('#hidden_motoristaCNH').val(cnh);

let telefone = selectedItem["Telefone"]; $('#hidden_motoristaTelefone').val(telefone);

let idFoto = selectedItem["IdFoto"]; //let url ="/webdesk/streamcontrol/01.png?WDCompanyId=1&WDNrDocto="+selectedItem["IdFoto"].trim()+"&WDNrVersao=1000" //$("#idDocument").attr("src",url) $("#idDocument").val(idFoto);

}

if(selectedItem.inputId == "psqVeiculo") { let placa = selectedItem["PlacaVeiculo"]; $('#hidden_veiculoPlaca').val(placa);

let modelo = selectedItem["DescricaoVeiculo"]; $('#hidden_veiculoModelo').val(modelo);

if (placa != "") { $("#inte_vei").val("N") } else { $("#inte_vei").val("S") }

} }

Lucas, esse dataset que retorna os fornecedores é um dataset customizado ou interno? pq se for interno so vem os campos que aparece no zoom. tive um problema desse.

Oi Otto, é um dataset customizado mesmo

Lucas, tem como anexar/postar sua função setSelectedZoomItem?

Oi Alef, atualizei a pergunta com a function.

Olá.

Quando utiliza um dataset online, todos os campos são enviados para a função setSelectedZoomItem, assim consigo utilizar qualquer informação do item selecionado. Mas se o dataset for offline, só é enviado para o setSelectedZoomItem os campos que forem definidos no "fields" do zoom. Dessa forma basta incluir no "fields" todas os campos do dataset, o problema que ocorre nisso é que ao clicar no zoom, irá apresentar todos os campos, para resolver isso, foi criado um parâmetro "visible" que vc deverá incluir em todos os campos que você queira que vá para o setSelectedZoomItem, mas que não sejam apresentados na hora que clicar no zoom.

Segue abaixo como ficou o meu zoom de fornecedor onde precisei passar todos os dados do fornecedor escolhido no zoom...


<input type="zoom" id="txtFornecedor" name="txtFornecedor"
    data-zoom="{
        'displayKey':'DESCWEB',
        'datasetId':'dsFornecedores',
        'maximumSelectionLength':'1',
        'placeholder':'Fornecedor',
        'fields':[
            {'field':'DESCWEB','label':'Fornecedor','standard':'true'},
            {'field':'CODIGO','label':'Código','visible':'false'},
            {'field':'LOJA','label':'Loja','visible':'false'},
            {'field':'NOME','label':'Razão Social','visible':'false'},
            {'field':'CNPJ','label':'CNPJ','visible':'false'},
            {'field':'ENDERECO','label':'Endereço','visible':'false'},
            {'field':'BAIRRO','label':'Bairro','visible':'false'},
            {'field':'CIDADE','label':'Cidade','visible':'false'},
            {'field':'UF','label':'UF','visible':'false'},
            {'field':'EMAIL','label':'E-mail','visible':'false'},
            {'field':'CONTATO','label':'Contato','visible':'false'},
            {'field':'CONDPGTO','label':'Cond. Pagamento','visible':'false'},
            {'field':'BANCO','label':'Banco','visible':'false'},
            {'field':'AGENCIA','label':'Agência','visible':'false'},
            {'field':'NUMCONTA','label':'Conta Corrente','visible':'false'}
        ]
     }" />

Deu certo aqui, obrigado Anderson! Não encontrei essa particularidade na documentação deles, sequer o suporte deles conseguiram me ajudar. Obrigado!