Estimados, se desarrolló un reporte que utiliza un dataset que en uno de sus campos almacena nombre de usuario. En el reporte Birt, necesitamos que dependiendo del usuario que acceda pueda visualizar información del dataset filtrando el WKUser con el campo del dataset. Se probó creando una variable var nome="${WKUser}"; y luego
try {
var factory = DatasetFactory.getInstance(${WKCompany});
var constraints = new Array(); var i = 0;
//Filtra sólo por la matrícula del colaborador informado if(params["estado"].value != null && params["estado"].value != "*") { constraints[i] = factory.createConstraint("c_estado", params["estado"].value, params["estado"].value, ConstraintType.MUST); i++; } constraints[i] = factory.createConstraint("c_periodo_actual", params["periodo"].value, params["periodo"].value, ConstraintType.MUST); //i++; constraints[i] = factory.createConstraint("c_solicitante", nome, nome, ConstraintType.MUST);
var sortingFields = new Array("c_solicitante");
ds_eval = factory.getDataset("ds_eval_desemp", null, constraints, sortingFields);
}
catch (e) { }
finally { }
Pero esto no filtra la información.
Se probó generando un parámetro donde el valor por default es ${WKUser} y se muestra correctamente el usuario actual en el parametro, se utilizó el filtro del dataset y tampoco funciona, luego también de la porción de código anterior se cambió por el parámetro
constraints[i] = factory.createConstraint("c_solicitante", params["nome"].value, params["nome"].value, ConstraintType.MUST);
Pero tampoco funciona.
Por otro lado No existen vacíos en el campo del dataset.
Si solo dejo el parámetro y no hago el filtro tampoco funciona el reporte.
Agradeceré Si pueden ayudarme en el tema.
Muchas Gracias.
Gente alguien podrá orientarme en el tema. Gracias
— Ruben Seoane 28 de Apr de 2017