【问题标题】:Using Javascript reportContext.setPersistentGlobalVariable method on Birt handlers在 Birt 处理程序上使用 Javascript reportContext.setPersistentGlobalVariable 方法
【发布时间】:2015-03-06 08:42:13
【问题描述】:

我尝试使用 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()函数执行脚本失败。

【问题讨论】:

    标签: javascript eclipse birt


    【解决方案1】:

    理论上这段代码应该可以工作,因为 setPersistentGlobalVariable 方法需要一个可序列化的对象:

    void setPersistentGlobalVariable( String name, Serializable obj );
    

    但实际上在 Rhino 脚本中它似乎只能处理一个字符串,试试这个:

    var flag = "1";
    if(row.Percent>10)
    reportContext.setPersistentGlobalVariable("flag", flag);
    
    
    var flg = reportContext.getPersistentGlobalVariable("flag");
    if(flg=="1")
    reportContext.getDesignHandle().findElement("chartToHide").drop();
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-06
    • 2016-05-11
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    相关资源
    最近更新 更多