Sub..end sub

Instrukcja sterowania sub..end sub definiuje podprogram, który można wywołać z instrukcji call.

Syntax:  

Sub name [ ( paramlist )] statements end sub

 

Argumenty są kopiowane do podprogramu, a jeśli odpowiadające parametry rzeczywiste w instrukcji call są nazwami zmiennych, wówczas są kopiowane ponownie na zewnątrz po wyjściu z podprogramu.

Jeśli podprogram zawiera więcej parametrów formalnych niż rzeczywistych przekazywanych przez instrukcję call, wówczas parametry dodatkowe zostaną zainicjowane na NULL i możliwe będzie ich użycie jako zmiennych lokalnych w podprogramie.

Instrukcja sub jest instrukcją sterowania i jako taka kończy się średnikiem lub symbolem końca linii — żadna z jej dwóch klauzul (sub i end sub) nie może zatem wykraczać poza granicę linii.

Arguments:  

Argument Opis
name Nazwa podprogramu.
paramlist Rozdzielana przecinkami lista nazw zmiennych dla parametrów formalnych podprogramu. Te zmienne mogą być używane jak dowolna zmienna w podprogramie.
statements Dowolna grupa zawierająca co najmniej jedną instrukcję skryptu Qlik Sense.

Example 1:  

Sub INCR (I,J)

I = I + 1

Exit Sub when I < 10

J = J + 1

End Sub

Call INCR (X,Y)

Example 2: — transfer parametru

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)

Wynik powyższej składni będzie następujący: lokalnie, wewnątrz podprogramu, A zostanie zainicjowane na 1, B zostanie zainicjowane na 4, a C zostanie zainicjowane na NULL.

Po wyjściu z podprogramu zmienna globalna A otrzyma 2 jako wartość (kopiowaną z powrotem z podprogramu). Drugi parametr rzeczywisty „(X+1)*2” nie zostanie skopiowany z powrotem, ponieważ nie jest zmienną. Ostatecznie wywołanie podprogramu nie wpływa na zmienną globalną C.

See also: