Como utilizar reloadZoomFilterValues no DataSet WsConsultaSQL

Uso esse dataset aqui para buscar na minha consulta lá no RM os colaboradores com mais de 365 dias de casa.

DATASET utilizado

``` function createDataset(fields, constraints, sortFields) {

var NOME_SERVICO = "WsConsultaSQL"; // Nome do serviço criado no Fluig Studio var CAMINHO_SERVICO = "com.totvs.WsConsultaSQL"; // Caminho do serviço var dataset = DatasetBuilder.newDataset();

try { // Obtem a instancia do serviço var servico = ServiceManager.getServiceInstance(NOME_SERVICO); // Inicializa o serviço var instancia = servico.instantiate(CAMINHO_SERVICO); // Obtem o WebService para consumo var ws = instancia.getRMIwsConsultaSQL(); var serviceHelper = servico.getBean(); // Autenticação no serviço var authService = serviceHelper.getBasicAuthenticatedClient(ws, "com.totvs.IwsConsultaSQL", 'mestre', 'senhamestre');

var parametros ="CODFILIAL=1";

var result = authService.realizarConsultaSQL("FLUIG.0003", parseInt("1") , "G", parametros); log.info("!!! INFO !!!"); log.info(result); if ((result != null) && (result.indexOf("===") != -1)) { var msgErro = result.substring(0, result.indexOf("===")); log.error("Erro: " + msgErro); throw "Erro: " + msgErro; }

// Insere o resultado em um objeto XML para melhor manipulação dos dados var xmlResultados = new XML(result); log.info(xmlResultados); // Cria as colunas que serão retornadas pela consulta SQL e que serão utilizadas dataset.addColumn("CODFILIAL"); dataset.addColumn("FUNCIONARIO"); dataset.addColumn("FUNCAO"); dataset.addColumn("CARGO");

// Adiciona os dados no dataset for each(row in xmlResultados.Resultado) { dataset.addRow(new Array(row.CODFILIAL.toString(), row.FUNCIONARIO.toString(), row.FUNCAO.toString(), row.CARGO.toString() )); }

} catch (e) { if (e == null) e = "Erro conexão Totvs"; var mensagemErro = "Erro na comunicação com o app (linha: " + e.lineNumber + "): " + e; log.error(mensagemErro); log.info(mensagemErro); dataset.addColumn("ERROR"); dataset.addColumn("MESSAGE_ERROR"); dataset.addRow(new Array(-1, mensagemErro)); }

return dataset; } ```

// Consulta SQL


SELECT A.CODFILIAL, A.NOME AS FUNCIONARIO, B.NOME AS FUNCAO, C.NOME AS CARGO
FROM PFUNC A, PFUNCAO B, PCARGO C
WHERE A.CODFUNCAO = B.CODIGO
AND B.CARGO = C.CODIGO
AND DATEDIFF(DAY, A.DATAADMISSAO, GETDATE()) > 365
AND A.CODSITUACAO <> ('D')
AND A.CODFILIAL = :CODFILIAL

Eu queria que assim que o cara escolher a filial no Formulário ele retornasse somente os funcionários daquela filial, vou postar aqui meu formulário com o JS, tem como alguém me ajudar e informar o que está faltando ou no que estou errando?

Unidade Escolha a Unidade Unidade 1 Unidade 2 Unidade 14 Unidade 15 Unidade 16
Avaliado

JavaScript


$(document).ready(function() {
    $('#unidade').change(function() {
        var filial = $('#unidade').val();
        alert(filial);
        reloadZoomFilterValues(avaliado, "CODFILIAL," + filial);
    });    
});

O que estou errando que não consigo mudar o valor do CODFILIAL no dataset e mudar os colaboradores que são exibidos?

Pessoal, continuei tentando aqui e consegui resolver da seguinte forma.

Adicionei essa condição no dataset.

var filtro; if (constraints != null) { for (var i = 0; i < constraints.length; i++) {

if (constraints[i].fieldName == "CODFILIAL") {

filtro = "CODFILIAL="+constraints[i].initialValue;

}

}

}

var result = authService.realizarConsultaSQL("FLUIG.0003", parseInt("1") , "G", filtro);

No Javascript usei:

$('#unidade').blur(function() { $("#funcionarios").empty(); var filial = $('#unidade').val(); if(filial==""){ $("#funcionarios").empty(); } else{ function consult_data_customizado (){ var c1 = DatasetFactory.createConstraint("CODFILIAL", filial, filial, ConstraintType.MUST); var database = DatasetFactory.getDataset("ds_func_acima_365", null, new Array(c1), null); return database; }; var dataset = consult_data_customizado(); $.each(dataset.values,function(k,v) {$("#funcionarios").append("

"+v.FUNCIONARIO+" / "+v.FUNCAO +"");}); }});

Assim consegui resolver o problema.