首页 > 其他 > 详细

有关QlikView循环的疑惑

时间:2014-03-27 20:36:17      阅读:531      评论:0      收藏:0      [点我收藏+]
问题描述:

查阅了QlikView的help后知道QlikView的循环语法如下面Code所示:

LET vTest1 = 1;
LET vTest2 = 30;

DO WHILE (vTest1 < $(vTest2))

	LET vTest1 = $(vTest1) + 1;
LOOP

可是令人不解的是为何把DO WHILE (vTest1 < $(vTest2))替换成下面的方式后就变成死循环了:

DO WHILE ($(vTest1) < $(vTest2))。

Google了很多次,只是说在while条件只会被编译一次,而循环中的所有值都会在每一次循环中都被解析。

原文是这样的:Each condition is interpreted only the first time it is encountered but is evaluated for every time it encountered in the loop. 

因此上面的条件就变成这样 DO WHILE (1 < 30)一直成立。



解决方法:
1. 在while条件里面不使用dollar sign,像这样DO WHILE (vTest1 < $(vTest2));

2. 在loop(循环)语句中使用EXIT DO WHEN如下:

LET vTest1 = 1;
LET vTest2 = 30;

DO WHILE ($(vTest1) < $(vTest2))

	LET vTest1 = $(vTest1) + 1;

	EXIT DO WHEN ($(vTest1) >= $(vTest2));

LOOP

疑问:
为何QklikView只会对条件编译一次?

有关QlikView循环的疑惑,布布扣,bubuko.com

有关QlikView循环的疑惑

原文:http://blog.csdn.net/zplume/article/details/22283239

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!