Aufruf von VBScript-Funktionen im Skript

Funktionen, die im Makro-Modul eines QlikView-Dokuments definiert wurden, können im Ladeskript aufgerufen werden. Wird eine Funktion nicht als eine der Standard-Funktionen erkannt, prüft QlikView, ob das Modul eine solche, benutzerdefinierte Funktion enthält. Dieses Feature bietet Ihnen völlige Flexibilität beim Entwickeln eigener Funktionen. Die Ausführung einer Makro-Funktion dauert allerdings etwas länger als bei den Standard-Funktionen.

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

Übergabe von Parametern

Bei der Übergabe von Parametern zwischen dem Ladeskript und dem Makro gelten folgende Grundsätze:

  • Fehlende Parameter werden als NULL übergeben.
  • Liefert eine Formel einen numerischen Wert, wird die Zahl übergeben, liefert sie einen Stringwert, wird der String übergeben, anderenfalls wird ein NULL-Wert übergeben.
  • NULL wird als VT_EMPTY übergeben.
  • Ausgabewerte werden in ihrer gegebenen Form übergeben.