Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript BIRT在脚本中使用日期参数_Javascript_Birt - Fatal编程技术网

Javascript BIRT在脚本中使用日期参数

Javascript BIRT在脚本中使用日期参数,javascript,birt,Javascript,Birt,我正在使用BIRT,并试图根据结束日期报告参数修改图表上的文本,我已经为该参数指定了一个默认值,当然还有日期数据类型。SQL查询也使用此参数。为了测试值的传递,我编写了以下脚本 function beforeDrawLegendItem( lerh, bounds, icsc ) { var endDate = new Date(params["rptEndDate"].value); } 但是,当我尝试预览图表时,它是空白的,这表明我的脚本有问题。当我注释掉var endDate行时

我正在使用BIRT,并试图根据结束日期报告参数修改图表上的文本,我已经为该参数指定了一个默认值,当然还有日期数据类型。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获取参数值时也失败。根据其他来源,我的脚本应该是正确的。是否缺少任何内容?

这是由于图表引擎的特殊性造成的:“params”对象在图表脚本中不可用,请改用“getParameterValue”。它的工作原理如下:

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

预览者倾向于提供不太理想的格式或全功能设计。以最终交付中使用的格式/工具打开报告,以便在设计过程中进行真正的测试。就我个人而言,我在测试服务器上安装了Apache,并将所有预览测试作为一个网页进行

我自己也找到了一个类似于您推荐的解决方案:
icsc.getExternalContext().getScriptable().getParameterValue(“rptEndDate”)
是的,它是相同的,前缀icsc.getExternalContext().getScriptable()不再是必需的,除非我们使用了非常旧的BIRT版本