我试图使用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/