Birt在script中得到sessio的正确方法

如果想要在Birt的script中得到Session的话,以下便是正解:

importPackage(Packages.javax.servlet.http);

var request = reportContext.getHttpServletRequest();
 
var oper = request.getSession().getAttribute("oper");
var sclass = request.getSession().getAttribute("sclass");

var query=" where 1=1";

var setreserve2="";

if (oper!=null && !("".equals(oper))){
   setreserve2=" and t.reserve2=case when '1'="+sclass+" then t.reserve2 else (select reserve1 from db_sysadmin where oper="+oper+") end";
   query+=setreserve2;
}

 需要注意的是从Session里面取出来的值如果要和SQL语句动态连接起来的话,值的外面不需要再加上‘’(即2个单引号),如果加上的话就会报错,至于原因我并不太清楚。不过上面的语句亲测可用!

你可能感兴趣的:(birt)