setPersistentGlobalVariable

setPersistentGlobalVariable

我试图使用reportContext.setPersistentGlobalVariable在数据集的OnFetch Javascript方法上定义全局变量,如下所示:

flag = 1;
if(row.Percent>10)
reportContext.setPersistentGlobalVariable("flag", flag);


并像这样检索beforeRender方法上的变量:

var flg = reportContext.getPersistentGlobalVariable("flag");
if(flg==1)
reportContext.getDesignHandle().findElement("chartToHide").drop();


但是通过运行报告收到此错误:


  org.eclipse.birt.report.engine.api.EngineException:评估脚本“ reportContext.setPersistentGlobalVariable(“ flag”,true);“时出错:
      无法在函数__bm_onFetch()中执行脚本。

最佳答案

从理论上讲,该代码应该起作用,因为方法setPersistentGlobalVariable需要一个可序列化的对象:

void setPersistentGlobalVariable( String name, Serializable obj );


但实际上在Rhino脚本中似乎只能处理一个String,请尝试以下操作:

var flag = "1";
if(row.Percent>10)
reportContext.setPersistentGlobalVariable("flag", flag);


var flg = reportContext.getPersistentGlobalVariable("flag");
if(flg=="1")
reportContext.getDesignHandle().findElement("chartToHide").drop();

关于javascript - 在Birt处理程序上使用Javascript reportContext.setPersistentGlobalVariable方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28895046/

10-10 11:17