スクリプトからの VBScript 関数の呼び出し

QlikView ドキュメントのマクロ モジュールで定義されている VBScript または JScript 関数をスクリプトから呼び出すことができます。呼び出した関数が標準のスクリプト関数として認識されない場合は、モジュールにカスタム関数があるかどうかがチェックされます。したがって、かなり自由に独自の関数を定義することができます。もちろん、カスタム マクロ関数を使用する場合は、標準の関数を実行する場合より多少速度が低下します。

rem *************************************************

rem ***THIS IS VBSCRIPT CODE FROM THE MODULE********* rem**************************************************

rem ********* Global variables ********************

dim flag

rem *******functions accessible from script *********

rem ************ wrap for input box ******************

function VBin(prompt)

VBin=inputbox(prompt)

end function

 

rem ************ clear global flag ******************

function VBclearFlag()

flag=0

end function

rem ********* test if reference has passed ***********

function VBrelPos(Ref, Current)

if Ref=Current then

VBRelPos="Reference"

flag=1

elseif flag=0 then

VBRelPos="Before "&Ref&" in table"

else

VBRelPos="After "&Ref&" in table"

end if

end function

// **************************************************

// *************THIS IS THE SCRIPT *****************

// *************************************************

 

let MaxPop=VBin('Max population in millions :');

// Ask limit

 

let RefCountry=VBin('Reference country :');

// Ask ref.

 

let dummy=VBclearFlag(); // Clears the global flag

 

Load

Country,recno(),

Capital,

"Area(km.sq)",

"Population(mio)",

VBrelPos('$(RefCountry)',Country)

as RelativePos

from country1.csv

(ansi, txt, delimiter is ',', embedded labels)

where "Population(mio)" <= $(MaxPop);

パラメータの転送

ロード スクリプトと VBScript の間のパラメータの転送には、次の規則が適用されます。

  • 欠けているパラメータは NULL として渡されます。
  • 実際の数式が有効な数値と評価された場合は、その数値が渡されます。実際の数式が有効な文字列と評価された場合は、その文字列が渡されます。それ以外の場合は、NULL が渡されます。
  • NULL は VT_EMPTY として渡されます。
  • 戻り値は、自然な形式で処理されます。