Koddan VBScript Fonksiyonu Çağrıları

Bir QlikView dosyasının makro modülünde tanımlanan VBScript veya JScript fonksiyonları koddan çağrılabilir. Çağrılan bir fonksiyon standart kod fonksiyonu olarak tanınmazsa, modülde özel fonksiyonların bulunup bulunmadığını öğrenmek için bir denetim gerçekleştirilebilir. Bu size, kendi fonksiyonlarınızı tanımlama konusunda yüksek oranda özgürlük sağlar. Elbette, özel makro fonksiyonlarının kullanılması, standart fonksiyonların çalıştırılmasından biraz daha yavaş olur.

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);

Parametrelerin Aktarımı

Kod dosyası ile VBScript arasındaki parametrelere yönelik parametre aktarımı için aşağıdaki kurallar geçerlidir:

  • Eksik parametreler NULL olarak geçirilir
  • Gerçek ifade geçerli bir sayı olarak değerlendirilirse sayı geçirilir, ancak gerçek ifade geçerli bir dize olarak değerlendirilirse dize geçirilir, aksi takdirde NULL geçirilir.
  • NULL, VT_EMPTY olarak geçirilir.
  • Döndürülen değerler olağan şekilde işlenir.