Sub..end sub

sub..end sub 控制陳述式會定義可從 call 陳述式呼叫的副程式。

Syntax:  

Sub name [ ( paramlist )] statements end sub

 

引數會複製到副程式中,而且如果 call 陳述式中的對應實際參數是變數名稱,將在結束副程式時再次複製回引數。

如果副程式擁有的型式參數比 call 陳述式傳遞的實際參數多,則會將額外的參數初始化為 NULL,且可在副程式內做為本機變數。

由於 sub 陳述式是控制陳述式,因而會以分號或行尾來結束,所以這兩個子句 (subend sub) 都不能超過行邊界。

Arguments:  

引數 描述
name 副程式的名稱。
paramlist 以逗號分隔副程式型式參數之變數名稱的清單。其可在副程式內做為任何變數。
statements 是一或多個 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: - 參數傳送

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)

以上範例的結果會是在本機的副程式內,A 將初始化為 1、B 將初始化為 4,而 C 將初始化為 NULL

結束副程式後,全域變數 A 會取得 2 做為值 (從副程式複製回來)。第二個實際參數 “(X+1)*2” 因為不是變數,所以不會被複製回來。最後,全域變數 C 不會受到副程式呼叫的影響。

See also: