Beschreibung
In QlikView Script können eigene Funktionen erstellt werden die den eingebauten Funktionen ähnlich sind. mit dem Vorteil ihr bestimmt was diese Funktion macht.
Wann ist es klug eine eigene Funktion zu schreiben, wenn mehrere Script befhelt mehrfach verwendet werden kann es in eine Eigene Funktion ausgelagert werden. Beispiel dafür ist: das Speichern von QVD-Dateien oder der Masterkalender.
Wie kann diese Funktion nun erstellt werden im Script, ganz einfach, hier eine
How-To Anleitung
- Script Editor starten (das kann in der QlikView App sein oder auch SublimeText)
- In der App ein neues Register erstellen (nicht zwingend, aber macht es übersichtlich), im TextEditor ein neues *.qvs File erstellen.
- Als erstes immer einen Kommentar Block erstellen, dort sollte der Name der Methode, ein Aufruf Beispiel und eine kurze Beschreibung rein. Grund in ein paar Wochen weist du auch nicht mehr wie das geht und wenn dich, ist dien Nachfolger froh um die Infos.
Falls du noch weitere Angaben machen willst wie eine Versionsnummer, ein Change-Blog oder so, alles machbar. - Funktion öffnen mit SUB <MyFunction>(), als erstes noch ohne Parameter, <MyFunction> wird durch den Namen deiner Funktion ersetzt. Wähle den Namen gut, er sollte möglichst sprechend sein.
- Funktion schliessen mit END SUB
- Alles zwischen dem Sub <MyFunktion>() und End Sub ist der Body der Funktion. Dieser enthält deine Logik.
Zu beachten gilt es
- Rückgabe Parameter gibt es keine
- Alle erstellten Variablen sind in der QlikView App später verfügbar
- Daher immer alle nicht mehr benötigten Variablen löschen!
- Parameter die in an einen Funktion übergeben werden sind bei Referenz!
Vorsicht beim Reseten der Variable. - Komplexe Funktionen kapseln zwar ein Sachverhalt und machen am Anfang sehr stark Sinn, nur ist das Wartbar so?
Kann das ein anderer auch Warten/ Betreiben? - Wie die Performance von einer Eigenen Funktion ist, muss immer auch geprüft werden. Es kann sein das es sehr langsam wir mit der Funktion. Meist nicht ein Problem.
Beispiel einer Funktion (Sub .... end sub)
Sub EinsPlusEins()
set vL.Zwei = 1+1;
End SUB
Diese Funktion gibt eine Fariable (vL.Zwei) mit dem Wert 2.
So einfach kann eine Eigene Funktion erstellt werden.
Tips und Tricks
Ich rücke den Body der Funktion immer um ein Tab (4 Spaces) ein, das macht das ganze einiges einfacher zu lesen.
Das selbe mache ich auch bei IF-THEN-ELSE Statments.
Testet es aus die Lesbarkeit nimmt stark zu.