0

我在浏览器中遇到 QlikView 问题:我有一个列表框并尝试使用初始化脚本访问它。

该脚本是通过使用InitWorkbench函数的BodyOnLoadFunctionNames参数注册的。到目前为止,这是可行的,并且初始化程序在启动时运行。

在初始化程序中,我尝试执行以下操作:

var doc = Qv.GetCurrentDocument();
var listbox = doc.GetObject('LB01');

后来,当我看的时候listbox.Type,不幸的是undefined。如果我延迟执行此查询,它会正确LB显示,因此显然该查询有效 - 但仅在延迟执行时才有效。

因此,显然存在时间问题,并且似乎初始化程序运行得太早(或者我做错了什么)。

任何人都可以指出解决方案是什么(或者给我一个提示我做错了什么)?

4

1 回答 1

0

好的,我找到了解决方案:内部更新函数尚未运行,所有值只有在此函数运行后才可用,因此您需要为调用提供回调GetObject(在更新函数之后调用) :

var doc = Qv.GetCurrentDocument();
var listbox = doc.GetObject('LB01', function () {
  console.log(listbox.Type); // => 'LB'
});
于 2013-05-06T14:05:49.253 回答