Filtro de zoom com dataset customizado

Boa tarde,

preciso atualizar um zoom baseado na escolhe de outro zoom. Ambos são preenchidos através de datasets customizados.

Cheguei a criar a constraint, a tratar ela no dataset mas não consigo atualizar com os valores que preciso.

Ao preencher o zoom idReq preciso que atualize o zoomFunc somente com os funcionários da seção do funcionário selecionado no zoom idReq.

Zoom idReq:

                     <div class="col-xs-12 col-md-8">
                        <label class="control-label">Requisitante</label>                        
                        <input
                            type="zoom"
                            id = "idReq"
                            name="idReq"
                            data-zoom="{
                                'displayKey':'NOME',
                                'datasetId':'consultaChapaSolicitante',
                                'maximumSelectionLength':'1',
                                'placeholder':'Requisitante',
                                'fields':[
                                    {
                                      'field':'CHAPA',
                                      'label':'Chapa',
                                      'visible':'false'
                                    },{
                                      'field':'NOME',
                                      'label':'Nome',
                                      'standard':'true'
                                    },{
                                      'field':'CODSECAO',
                                      'label':'Cód.Seção',
                                      'visible':'false'
                                    },{
                                      'field':'SECAO',
                                      'label':'Seção'
                                    }
                                ]
                             }"
                        />
                    </div>

Zoom funcionarios:

<div class="col-xs-12 col-md-8">
                        <label class="control-label">Funcionário</label>                        
                        <input        
                            type="zoom"
                            id = "zoomFunc"
                            name="zoomFunc"
                            data-zoom="{
                                'displayKey':'NOME',
                                'datasetId':'rm_consulta_funcionario',
                                'maximumSelectionLength':'1',
                                'placeholder':'Selecione o funcionário',
                                'fields':[
                                    {
                                      'field':'CHAPA',
                                      'label':'Chapa'
                                    },{
                                      'field':'NOME',
                                      'label':'Nome',
                                      'standard':'true'
                                    },{
                                      'field':'CODSITUACAO',
                                      'label':'Situação',
                                      'visible':'false'
                                    },{
                                      'field':'CODSECAO',
                                      'label':'Seção'
                                    }
                                ]
                             }"
                         />
                    </div>

Dataset rm_consulta_funcionario:

dataset.addColumn("CODCOLIGADA");
        dataset.addColumn("CHAPA");
        dataset.addColumn("NOME");
        dataset.addColumn("CODSECAO");

        var codEmpresa = getValue("WKCompany");

        var codSecao = "";

        for (i = 0; i < constraints.length ; i++) {
            if (constraints[i].fieldName == 'CODSECAO') {
               codSecao = constraints[i].initialValue;
            }
         }

        var restricao = "RMSContext,CodColigada=" + codEmpresa + ",CodColigada=" + codEmpresa + ",0;";
        var filtro = "PFUNC.CODCOLIGADA= " + codEmpresa + " AND PFUNC.CODSECAO LIKE '" + codSecao + "%'";

        var result = authenticatedService.readLookupView("FopFuncData", filtro, restricao, '');

        if ((result != null) && (result.indexOf("===") != -1))
        {
            var msgErro = result.substring(0, result.indexOf("==="));

            throw msgErro;
        }

        var xmlResultados = new XML(result);  

        for    each(pFunc in xmlResultados.PFunc) {
            dataset.addRow(new Array(pFunc.CODCOLIGADA.toString(),
                    pFunc.CHAPA.toString(),
                    pFunc.NOME.toString(),
                    pFunc.CODSECAO.toString()));   
        }

        return dataset;

setSelectedZoomItem ao selecionar no zoom do idReq

function setSelectedZoomItem(selectedItem) { 
        var FIELD = selectedItem.inputId;

        if (FIELD == "idReq") {
            var nomeReq = selectedItem["NOME"];
            $('#chapaReq').val(nomeReq);
            var codSecao = selectedItem["CODSECAO"];

            window["zoomFunc"].disable(false);

            var c1 = DatasetFactory.createConstraint("CODSECAO", codSecao, codSecao, ConstraintType.MUST);
            var constraints = new Array(c1);

            reloadZoomFilterValues(zoomFunc, "CODSECAO," + codSecao);
        }                    
    }

Qual seria o próximo passo?

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags zoom reloadzoomfiltervalues ou faça a sua própria pergunta.