Qlikview - FOR循环中的Peek()函数不起作用

时间:2014-07-23 12:47:31

标签: qlikview peek

我有这样的表:

     TABLE:
        LOAD * INLINE [
            SERVER
            'SERVERNAME1'
            'SERVERNAME2'
            ...
        ];

和循环:

FOR i = 1 to NoOfRows('TABLE')  

    LET v_TABLE = Peek('SERVER', $(i), 'TABLE');
    LET v_SPECIFICATION = FieldName(1, $(v_TABLE));

    trace $(v_TABLE);


    ...
    STATEMENTS
    ... 

NEXT

如果我重新加载它,没有任何事情发生,虽然循环运行数千次,因为Peek()函数的结果总是NULL,而不是表中的值。语法不正确,还是有其他错误?

1 个答案:

答案 0 :(得分:1)

抱歉,我的问题错了。在Peek()函数中,第三个参数不是字符串,而是一个变量(我不知道这会是错误的),经过多次尝试,我发现了两件事:

  • 在我的QV版本11.20中我必须调用具有可变参数的函数,例如v_SPECIFICATION,而不是$(v_SPECIFICATION)(但不是变量$(i),为什么???)
  • 并且表中的行从零开始编号(有时也是如此),因此这对我有用:

LET v_TABLE = Peek('服务器',$(i) - 1,v_SPECIFICATION);

对我来说真的很奇怪,但是边做边学......