Gostaria que o usuário pudesse escolher as empresas de acordo com o grupo que ele está inserido.
Por exemplo, se o usuário está inserido no grupo "SolicitantesAC_01", só poderá abrir solicitação para a "EMPRESA 01" e assim sucessivamente.
Alguém sabe como ajudar?
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("cod_empresa");
dataset.addColumn("nm_empresa");
dataset.addColumn("cod_grupo");
dataset.addRow(new Array("01", "EMPRESA 01", "solicitantesAC_01"));
dataset.addRow(new Array("02", "EMPRESA 02", "solicitantesAC_02"));
return dataset;
}
function createDataset(fields, constraints, sortFields) {
var mat = getValue("WKUser");
var dsEmpresas = DatasetBuilder.newDataset();
var c1 = DatasetFactory.createConstraint('colleagueGroupPK.colleagueId', mat, mat, ConstraintType.MUST);
var c2 = DatasetFactory.createConstraint('colleagueGroupPK.groupId', 'solicitantesAC%', 'solicitantesAC%', ConstraintType.MUST);
c2.setLikeSearch(true);
var dtsColleague = DatasetFactory.getDataset('colleagueGroup', new Array('colleagueGroupPK.groupId'), new Array(c1,c2), null);
dsEmpresas.addColumn("CODEMP");
dsEmpresas.addColumn("EMP");
for (var i = 0; i < dtsColleague.rowsCount; i++) {
var verificaEmpresa = dtsColleague.getValue(i, "colleagueGroupPK.groupId");
var validaEmpresa = DatasetFactory.createConstraint("cod_grupo", verificaEmpresa, verificaEmpresa, ConstraintType.MUST);
var constraints = new Array(validaEmpresa);
var empresaXgrupo = DatasetFactory.getDataset("consulta_EmpxGrupo", null, constraints, null);
for (var r = 0; r < empresaXgrupo.values.length; r++) {
var codigo = empresaXgrupo.getValue(r, "cod_empresa");
var empresa = empresaXgrupo.getValue(r, "nm_empresa");
dsEmpresas.addRow(new Array(codigo, empresa));
}
}
return dsEmpresas;
}
O mesmo usuário pode estar em mais de um grupo de uma vez? Tem certeza que esse é o código que você usou nos prints? No caso "empresaXgrupo.values.length" deveria ser "empresaXgrupo.rowsCount"...
— Caio Werneck 14 de Jan de 2020