Campo select filtrando Zoom

Bom dia.

Tenho um formulário Pai x Filho, com dois campos (GrupoProduto e Produto), campo SELECT e ZOOM respectivamente. Gostaria que quando a pessoa selecionasse o tipo, o Zoom só exibiria os produtos desse tipo. Vi alguns exemplos de constraint e tratamento de filtro no dataset mas não consegui entender como funciona ou como fazer. Abaixo deixo os códigos para ajuda.


<td class="col-md-1"><select onchange="atualizaFiltro(this)" class="filtro form-control" name="grp_prod" id="grp_prod" dataset="DTS_GRUPOPRODUTO" datasetkey="codGrupo" datasetvalue="codGrupo" addBlankLine="true"></select></td>

                                <td class="col-md-5"><input
                                    class="form-control"
                                    type="zoom"
                                    id = "codproduto"
                                    name="codproduto"
                                    data-zoom="{
                                        'displayKey':'CodDesc',
                                        'datasetId':'DTS_PRODUTOS',
                                        'maximumSelectionLength':'1',
                                        'placeholder':'Selecione Produto',
                                        'fields':[
                                            {
                                               'field':'CodDesc',
                                               'label':'Produto',
                                               'standard':'true'
                                            },
                                            {
                                               'field':'UnidadeMedida',
                                               'label':'UM'
                                            },
                                            {
                                               'field':'codGrupo',
                                               'label':'Grp'
                                            }
                                        ]
                                     }"
                                /></td>

Abaixo deixo código do meu dataset


function defineStructure() {
    addColumn("CodProduto");
    addColumn("Produto");
    addColumn('CodDesc');
    addColumn('UnidadeMedida');
    addColumn('codGrupo');

    setKey([ "CodProduto", "Produto" ]);
    addIndex([ "CodProduto" ]);
    addIndex([ "CodProduto", "Produto"]);
    addIndex([ "Produto", "CodProduto"]);
    addIndex([ "CodDesc"]);
}



function onSync(lastSyncDate) {
    var servicoURL = "minha url";    

    var myApiConsumer =  oauthUtil.getGenericConsumer("","", "", "");    
    var data = myApiConsumer.get(servicoURL);    

    var objdata = JSON.parse(data);

    var dataset = DatasetBuilder.newDataset();       
    dataset.addColumn('CodProduto');
    dataset.addColumn('Produto');
    dataset.addColumn('CodDesc');
    dataset.addColumn('UnidadeMedida');
    dataset.addColumn('codGrupo');

    for(var i=0; i < objdata.ACATALOG.length; i++){
        var codprod = objdata.ACATALOG[i].CPRODUCTCODE.trim();
        var produto = objdata.ACATALOG[i].CDESCRIPTION.trim();
        var codDesc = codprod + ' - '+ produto;
        var unidMed = objdata.ACATALOG[i].CMEASUREUNIT.trim();
        var tipo = objdata.ACATALOG[i].CTIPO.trim();

        dataset.addRow(new Array(codprod, produto, codDesc, unidMed, tipo));    
    }
    return dataset; 

}


function createDataset(fields, constraints, sortFields) {

Bom dia Janilson,

como o seu dataset é sincronizado, não vai precisar tratar no código do próprio dataset, já que ele vai consultar direto no banco.

Então você pode chamar a função reloadZoomFilterValues dentro dessa tua função atualizaFiltro, lembrando que como é pai x filho tem os underlines e indices das linhas:


function atualizaFiltro(combo) {
    var index = combo.id.substring(combo.id.indexOf('___') + 3);
    reloadZoomFilterValues('codproduto___' + index, "codGrupo," + combo.value);
}