Sub..end sub
Der Steuerungsbefehl sub..end sub definiert eine Subroutine, die zu einem späteren Zeitpunkt durch den Befehl call aufgerufen werden kann.
Syntax:
Sub name [ ( paramlist )] statements end sub
Argumente werden in die Subroutine kopiert. Wenn es sich bei dem entsprechend aufgeführten Parameter im call-Befehl um einen Variablennamen handelt, werden sie beim Beenden der Subroutine wieder zurückkopiert.
Wenn in einer Subroutine mehr Parameter definiert sind, als aus dem call-Befehl übernommen werden, erhalten die übrigen Parameter den NULL-Wert und können als lokale Variable in der Subroutine verwendet werden.
Da sub zu den Steuerungsbefehlen gehört und mit einem Semikolon oder einer Zeilenschaltung abschließt, dürfen sich die einzelnen Befehlssequenzen (sub und end sub) nicht über mehrere Zeilen erstrecken.
Argumente:
Argument | Beschreibung |
---|---|
name | Der Name der Subroutine. |
paramlist | Eine kommagetrennte Liste von Variablen, die als Parameter in der Subroutine dienen. Sie können wie jede Variable innerhalb der Subroutine verwendet werden. |
statements | Jede Gruppe von einem oder mehreren QlikView-Skriptbefehlen. |
Beispiel 1:
Sub INCR (I,J)
I = I + 1
Exit Sub when I < 10
J = J + 1
End Sub
Call INCR (X,Y)
Beispiel 2: - Übernahme von Parametern
Sub ParTrans (A,B,C)
A=A+1
B=B+1
C=C+1
End Sub
A=1
X=1
C=1
Call ParTrans (A, (X+1)*2)
Das Ergebnis des obigen Vorgangs besteht darin, dass A lokal, innerhalb der Subroutine, den Wert 1 erhält, B den Wert 4 und C den Wert NULL.
Beim Abschluss der Subroutine erhält die globale Variable A den Wert 2 (aus der Subroutine zurückkopiert). Der zweite aufgeführte Parameter „(X+1)*2“ wird nicht zurückkopiert, da es sich nicht um eine Variable handelt. Die globale Variable C wird vom Subroutinen-Call nicht beeinflusst.