QlikView中LET和SET以及dollar sign($())的使用总结

来源:互联网 发布:java 封装 英文 编辑:程序博客网 时间:2024/06/05 13:35

博客引言:

参数运用在报表开发阶段是很常见的事情,QlikView中可以用SET和LET方式声明参数,在dashboard页面中可以使用dollar sign($(参数))或者直接写=参数的方式引用参数。下面上面几者使用效果的差别。


环境:QlikView 11.2


研究过程:

1. 用LET方式声明四个参数:

LET vTest1 = 1+3;

LET vTest3 = '1+3';

LET vTest5 = Today();

LET vTest7 = 'Today()';

1.1 在dashboard里面不使用dollar sign的方式调用上面四个参数依次是下面四个值。

vTest1: 4

vTest3: 1+3

vTest5: 13/03/2014

vTest7: Today()

1.2 在dashboard里面使用dollar sign的方式调用上面四个参数依次是下面四个值。

$(vTest1): 4

$(vTest3): 4

$(vTest5): 0.002317115385634

$(vTest7): 13/03/2014

2. 用SET方式声明和上面同样的四个参数:

SET vTest1 = 1+3;

SET vTest3 = '1+3';

SET vTest5 = Today();

SET vTest7 = 'Today()';

2.1 在dashboard里面不使用dollar sign的方式调用上面四个参数依次是下面四个值。

vTest2: 1+3

vTest4: 1+3

vTest6: Today()

vTest8: Today()

2.2 在dashboard里面使用dollar sign的方式调用上面四个参数依次是下面四个值。

$(vTest2): 4

$(vTest4): 4

$(vTest6): 13/03/2014

$(vTest8): 13/03/2014


总结:

LET和SET的区别是:

1. LET会将等号后面的语句的计算结果值赋给参数,假如用引号引起来则当成字符串处理。

2. SET会将等号后面的语句完全当成字符串,即便写一个公式或者方法也不会计算。

是否使用dollar sign($())的区别:

1. $()会将括号里面的语句当成公式或者方法来计算或者执行.

2. 不加$()会直接使用LET或者SET的赋值结果。


备注:

1. 为何上面的$(vTest5)是小数,分为两部分逻辑

1.1. 用LET方式已经将Today()的结果13/03/2014赋给了参数vTest5.

1.2. 用dollar sign的方式调用参数,$()中括号里面的语句会以公式或者方法来计算或者执行,因此13除以03再除以2014的结果就是上面的小数。

2. 为何今天的日期是2014月3月14号,today()的结果却是13号

原因: Today()这个方法假如不给括号里面写任何参数,则里面的默认参数是2,也就是Today(2),这样的结果是该qvw文档被打开的那一天的日期。比如我昨天打开了这个文档,一直没有关闭,则今天调用Today(2)还是会显示昨天的日期。 Today(0)是最近一次reload数据的日期,Today(1)是这个方法被调用的日期。

0 0
原创粉丝点击