【问题标题】:BIRT Using Date parameter in scriptBIRT 在脚本中使用 Date 参数
【发布时间】:2013-11-20 06:14:02
【问题描述】:

我正在使用 BIRT 并尝试根据结束日期报告参数修改图表上的文本,我已为其分配了默认值,当然还有 Date 数据类型。 SQL 查询也使用此参数。为了测试值的传递,我编写了以下脚本。

function beforeDrawLegendItem( lerh, bounds, icsc )
{
    var endDate = new Date(params["rptEndDate"].value);
}

但是,当我尝试预览图表时,它是空白的,表明我的脚本有问题。当我注释掉 var endDate 行时,它会正常呈现。我尝试了其他方法来获取值,例如:

var endDate = new Date();

哪个有效,但是当我尝试分配参数值时:

endDate = params["rptEndDate"].value;

又失败了。删除 .value 部分也失败。当我尝试使用 reportContext 获取参数值时也失败了。根据其他来源,我的脚本应该是正确的。我有什么遗漏吗?

【问题讨论】:

    标签: javascript birt


    【解决方案1】:

    这是由于图表引擎的特殊性:“params”对象在图表脚本中不可用,请改用“getParameterValue”。它将像这样工作:

    function beforeDrawLegendItem( lerh, bounds, icsc )
    {
        var endDate = new Date(getParameterValue("rptEndDate"));
    }
    

    【讨论】:

    • 我自己找到了一个与您推荐的类似的解决方案:icsc.getExternalContext().getScriptable().getParameterValue("rptEndDate")
    • 是的,相同,前缀 icsc.getExternalContext().getScriptable() 不再需要,除非我们使用相当旧的 BIRT 版本
    【解决方案2】:

    预览器提供的设计往往不如优化格式或功能齐全的设计。以最终交付使用的格式/工具打开报告,以便在设计期间进行真正的测试。就我个人而言,我的测试服务器上有 Apache,并将我所有的预览测试作为网页进行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      相关资源
      最近更新 更多