Sub..end sub
L'istruzione di controllo sub..end sub definisce una subroutine che può essere richiamata da un'istruzione call.
Sintassi:
Sub name [ ( paramlist )] statements end sub
Gli argomenti vengono copiati nella subroutine e, se i relativi parametri reali nell'istruzione call corrispondono a un nome di variabile, vengono copiati nuovamente quando si chiude la subroutine.
Se una subroutine presenta più parametri formali di quelli effettivi passati da un'istruzione call, i parametri extra vengono inizializzati su NULL e possono essere utilizzati come variabili locali all'interno della subroutine.
L'istruzione sub è un'istruzione di controllo che termina con un punto e virgola o un fine riga, quindi ciascuna delle due clausole corrispondenti (sub e end sub) non deve superare la lunghezza limite della linea.
Argomenti:
Argomento | Descrizione |
---|---|
name | Il nome della subroutine. |
paramlist | Un elenco separato da virgole di nomi di variabili per i parametri formali della subroutine. Può essere utilizzato come qualsiasi variabile all'interno della subroutine. |
statements | Qualsiasi gruppo di una o più istruzioni dello script di QlikView. |
Esempio 1:
Sub INCR (I,J)
I = I + 1
Exit Sub when I < 10
J = J + 1
End Sub
Call INCR (X,Y)
Esempio 2: - trasferimento parametri
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)
Dall'esempio precedente risulta che localmente, all'interno della subroutine, A verrà inizializzato su 1, B verrà inizializzato su 4 e C verrà inizializzato su NULL.
Quando si chiude la subroutine, la variabile globale A otterrà 2 come valore (ricopiato dalla subroutine). Il secondo parametro reale “(X+1)*2” non verrà ricopiato dato che non si tratta di una variabile. Infine, la variabile globale C non verrà influenzata dalla chiamata della subroutine.