# 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 ***BU, MODELE AİT VBSCRIPT KODUDUR*********` `rem *************************************************` `rem ********* Genel değişkenler ********************` `dim flag` `rem *******koddan erişilebilen fonksiyonlar *********` `rem ************ giriş metni için kaydır ******************` `VBin(prompt) fonksiyonu` `VBin=inputbox(prompt)` `end fonksiyonu` ` ` `rem ************ genel bayrağını temizle ******************` `VBclearFlag() fonksiyonu` `flag=0` `end fonksiyonu` `rem ********* referans başarılıysa test et ***********` `VBrelPos(Ref, Current) fonksiyonu` `if Ref=Current then` `VBRelPos="Reference"` `flag=1` `elseif flag=0 then` `VBRelPos="Tabloda "&Ref&" öğesinden önce"` `else` `VBRelPos="Tabloda "&Ref&" öğesinden sonra"` `end if` `end fonksiyonu` `// **************************************************` `// *************BU KODDUR *****************` `// *************************************************` ` ` `let MaxPop=VBin('Milyon olarak maks. nüfus :');` `// Ask limit` ` ` `let RefCountry=VBin('Referans ülkesi :');` ` // Ask ref.  ` ` ` `let dummy=VBclearFlag(); // Genel bayrağını temizler` ` ` `Yükle` `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 aktarılır.
* 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.