Я пытался создать параметр отчета в виде списка со включенным множественным выбором.Я пытаюсь отфильтровать свой отчет на основе этого параметра.Я написал код, похожий на этот, но он не работает;
importPackage(Packages.java.util.logging);
var fileHandler = new FileHandler("/tmp/birt.log", true);
var rootLogger = Logger.getLogger("");
rootLogger.addHandler(fileHandler);
var queryString = "";
queryString = "select * from public.r_"+params["rid"]+"_0 where (r_date_1 >= '"+params["startdate"]+"' and r_date_2 <'"+params["enddate"]+"')";
queryString += " and (r_vchar_3=";
filterIPLength = reportContext.getParameterValue("filterIP").length;
Logger.getAnonymousLogger().info("Parameter Count: "+filterIPLength);
for(i = 0; i<filterIPLength; i++) {
queryString += "'"+reportContext.getParameterValue("filterIP")[i]+"'";
if (i != filterIPLength - 1) {
queryString += "or r_vchar_3=";
}
}
queryString += ")";
this.queryText = queryString;
проблема здесь в том, что строка reportContext.getParameterValue("filterIP").length;
всегда возвращает 1, даже если я выбираю несколько параметров, а отчет показывает только первыйвыбранные данные, поскольку цикл for выполняется только один раз.
Что может вызвать эту проблему?Как я могу отладить и решить это?
Любые идеи будут оценены.