Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Sub..end sub

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

Składnia:  

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.

Argumenty:  

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

Ograniczenia:  

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

  • Podczas definiowania podprogramu za pomocą Sub..end sub wewnątrz instrukcji sterującej, na przykład if..then, można wywołać podprogram tylko z tej samej instrukcji sterowania.

Przykład 1:  

Sub INCR (I,J)

I = I + 1

Exit Sub when I < 10

J = J + 1

End Sub

Call INCR (X,Y)

Przykład 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.

Dowiedz się więcej

 

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!