Estou tentando utilizar um filtro no meu segundo zoom de acordo com o que for selecionado no primeiro zoom, mas não consigo fazer funcionar.
Exemplo, selecionei o estabelecimento 501, no segundo zoom deveria trazer somente o ultimo registro que é o único que pertence ao mesmo estabelecimento:
Os campos zoom:
<div class="row">
<div class="form-group col-md-6">
<label for="empresa">Estabelecimento:</label>
<input
type="zoom"
id = "z_Estabelecimento"
name="z_Estabelecimento"
data-zoom="{
'displayKey':'Estabelecimento',
'datasetId':'dsEstabelecimento',
'maximumSelectionLength':'1',
'placeholder':'Escolha o estabelecimento',
'fields':[
{
'field':'Empresa',
'label':'Empresa'
},{
'field':'Estabelecimento',
'label':'Estabelecimento',
'standard':'true'
}
]
}"
/>
</div>
<div class="form-group col-md-6">
<label for="centroCusto">Centro de Custo:</label>
<input
type="zoom"
id = "z_CentroCusto"
name="z_CentroCusto"
data-zoom="{
'displayKey':'centroCusto',
'datasetId':'dsCentroCusto',
'maximumSelectionLength':'1',
'placeholder':'Escolha o centro de custo',
'fields':[
{
'field':'Descricao',
'label':'Descrição'
},
{
'field':'Estabelecimento',
'label':'Estabelecimento',
'standard':'true'
},{
'field':'centroCusto',
'label':'Centro de Custo'
}
]
}"
/>
</div>
</div>
Função reloadZoomFilterValues:
function setSelectedZoomItem(selectedItem) {
if(selectedItem.inputId == "z_Estabelecimento"){
$("#z_CentroCusto").val('');
reloadZoomFilterValues("z_CentroCusto", "Estabelecimento," + selectedItem["Estabelecimento"]);
}
};
Dataset do primeiro zoom:
function createDataset(fields, constraints, sortFields) {
//Cria as colunas
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("DocumentID");
dataset.addColumn("Empresa");
dataset.addColumn("Estabelecimento");
//Cria a constraint para buscar os formulários ativos
var cst = DatasetFactory.createConstraint("metadata#active", true, true, ConstraintType.MUST);
var constraints = new Array(cst);
var datasetPrincipal = DatasetFactory.getDataset("DSForm_Estabelecimento", null, constraints, null);
for (var i = 0; i < datasetPrincipal.rowsCount; i++) {
var documentId = datasetPrincipal.getValue(i, "metadata#id");
var documentVersion = datasetPrincipal.getValue(i, "metadata#version");
//Cria as constraints para buscar os campos filhos, passando o tablename, número da formulário e versão
var c1 = DatasetFactory.createConstraint("tablename", "estab" ,"estab", ConstraintType.MUST);
var c2 = DatasetFactory.createConstraint("metadata#id", documentId, documentId, ConstraintType.MUST);
var c3 = DatasetFactory.createConstraint("metadata#version", documentVersion, documentVersion, ConstraintType.MUST);
var constraintsFilhos = new Array(c1, c2, c3);
//Busca o dataset
var datasetFilhos = DatasetFactory.getDataset("DSForm_Estabelecimento", null, constraintsFilhos, null);
for (var j = 0; j < datasetFilhos.rowsCount; j++) {
//Adiciona os valores nas colunas respectivamente.
dataset.addRow(new Array(
documentId,
datasetFilhos.getValue(j, "empresa"),
datasetFilhos.getValue(j, "estabelecimento")));
}
}
return dataset;
}
Dataset do segundo zoom:
function createDataset(fields, constraints, sortFields) {
//Cria as colunas
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("DocumentID");
dataset.addColumn("Empresa");
dataset.addColumn("Estabelecimento");
dataset.addColumn("centroCusto");
dataset.addColumn("Descricao");
var estabelecimento = '';
if (constraints != null) {
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == "Estabelecimento") {
estabelecimento = constraints[i].initialValue.toString();
}
}
}
//Cria a constraint para buscar os formulários ativos
var cst = DatasetFactory.createConstraint("metadata#active", true, true, ConstraintType.MUST);
//var cst2 = DatasetFactory.createConstraint("Estabelecimento", estabelecimento, estabelecimento, ConstraintType.MUST);
var constraints = new Array(cst);
var datasetPrincipal = DatasetFactory.getDataset("DSForm_Centro_Custo", null, constraints, null);
for (var i = 0; i < datasetPrincipal.rowsCount; i++) {
var documentId = datasetPrincipal.getValue(i, "metadata#id");
var documentVersion = datasetPrincipal.getValue(i, "metadata#version");
//Cria as constraints para buscar os campos filhos, passando o tablename, número da formulário e versão
var c1 = DatasetFactory.createConstraint("tablename", "ccusto" ,"ccusto", ConstraintType.MUST);
var c2 = DatasetFactory.createConstraint("metadata#id", documentId, documentId, ConstraintType.MUST);
var c3 = DatasetFactory.createConstraint("metadata#version", documentVersion, documentVersion, ConstraintType.MUST);
var constraintsFilhos = new Array(c1, c2, c3);
//Busca o dataset
var datasetFilhos = DatasetFactory.getDataset("DSForm_Centro_Custo", null, constraintsFilhos, null);
for (var j = 0; j < datasetFilhos.rowsCount; j++) {
//Adiciona os valores nas colunas respectivamente.
dataset.addRow(new Array(
documentId,
datasetFilhos.getValue(j, "empresa"),
datasetFilhos.getValue(j, "estabelecimento"),
datasetFilhos.getValue(j, "centroCusto"),
datasetFilhos.getValue(j, "descricao")));
}
}
return dataset;
}