博客引言:
參數運用在報表開發階段是很常見的事情,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)是這個方法被調用的日期。