Chiamate di funzioni VBScript dallo script
Le funzioni VBScript o JScript definite nel modulo macro di un documento QlikView possono essere richiamate dallo script. Se una funzione richiamata non viene riconosciuta come una funzione di script standard, viene eseguita una verifica per determinare se nel modulo è presente una funzione personalizzata. Ciò offre una grande libertà di definizione di funzioni personalizzate. L'utilizzo di funzioni macro personalizzate naturalmente è più lento rispetto all'esecuzione delle funzioni standard.
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);
Trasferimento di parametri
Le regole seguenti valgono per il trasferimento di parametri fra lo script di caricamento e VBScript:
- I parametri mancanti vengono passati come NULL.
- Se l'espressione effettiva viene valutata come un numero valido, viene passato il numero; se l'espressione effettiva viene valutata come una stringa valida, viene passata la stringa, altrimenti viene passato NULL.
- NULL viene passato come VT_EMPTY.
- I valori restituiti vengono trattati in un modo naturale.