Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

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.

Argumente:  

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 Qlik Sense-Skriptbefehlen.

Beschränkungen:  

  • 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.

  • Wenn Sie eine Unterroutine mit Sub..end sub innerhalb eines Steuerungsbefehls definieren, beispielsweise if..then, können Sie nur die Unterroutine innerhalb des gleichen Steuerungsbefehls aufrufen.

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.

Weitere Informationen

 

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!