Accéder au contenu principal Passer au contenu complémentaire

Sub..end sub

L'instruction de contrôle sub..end sub définit une sous-routine qui peut être appelée à partir d'une instruction call.

 

Sub name [ ( paramlist )] statements end sub

 

Les arguments sont copiés dans la sous-routine et, si les paramètres réels correspondants de l'instruction call constituent un nom de variable, ils sont recopiés et supprimés à la fermeture de la sous-routine.

Si une sous-routine comporte plus de paramètres formels que ceux réellement transmis par une instruction call, les paramètres supplémentaires sont initialisés sur la valeur NULL et peuvent être utilisés comme variables locales dans la sous-routine.

 

Arguments
Argument Description
name Nom de la sous-routine.
paramlist Liste de noms de variables séparés par des virgules et définissant les paramètres formels de la sous-routine. Ceux-ci peuvent être utilisés comme n'importe quelle variable au sein de la sous-routine.
statements Tout groupe d'une ou plusieurs instructions de script Qlik Sense.

 

  • Comme l'instruction sub est une instruction de contrôle et, en tant que telle, se termine par un point-virgule ou une fin de ligne, aucune de ses deux clauses possibles (sub et end sub) ne peut s'étendre sur plusieurs lignes.

  • Lorsque vous définissez une sous-routine avec Sub..end sub à l'intérieur d'une instruction de contrôle, par exemple if..then, vous pouvez uniquement appeler la sous-routine depuis la même instruction de contrôle.

 

Sub INCR (I,J)

I = I + 1

Exit Sub when I < 10

J = J + 1

End Sub

Call INCR (X,Y)

- transfert de paramètres

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)

Le résultat de l'exemple ci-dessus est que, localement, au sein de la sous-routine, A sera initialisé sur 1, B sur 4 et C sur NULL.

Au moment de quitter la sous-routine, la variable globale A obtiendra la valeur 2 (recopiée à partir de la sous-routine). Le deuxième paramètre réel (X+1)*2 ne sera pas recopié, car il ne s'agit pas d'une variable. Enfin, la variable globale C ne sera pas affectée par l'appel de sous-routine.

En savoir plus

 

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !