我在浏览器中遇到QlikView问题:我有一个列表框并尝试使用初始化脚本访问它。
使用BodyOnLoadFunctionNames
函数使用var doc = Qv.GetCurrentDocument();
var listbox = doc.GetObject('LB01');
参数注册脚本。到目前为止,这是有效的,初始化程序在启动时运行。
在初始化程序中,我尝试执行以下操作:
listbox.Type
之后,当我查看undefined
时,不幸的是LB
。如果我延迟执行此查询,它会正确显示{{1}},因此显然查询有效 - 但只有在执行延迟时才会执行。
所以,显然存在时间问题,似乎初始化程序运行得太早(或者我做错了)。
有人可以指出解决方案是什么(或者给我一个暗示我做错了什么)?
答案 0 :(得分:0)
好的,我找到了解决方案:内部更新功能尚未运行,并且所有值仅在此功能运行后才可用,因此您需要提供对GetObject
调用的回调(在更新函数之后调用):
var doc = Qv.GetCurrentDocument();
var listbox = doc.GetObject('LB01', function () {
console.log(listbox.Type); // => 'LB'
});