Accéder au contenu principal

Call

L'instruction de contrôle call appelle une sous-routine qui doit être définie par une instruction sub précédente.

 

Call name ( [ paramlist ])

 

 

Arguments
Argument Description
name Nom de la sous-routine.
paramlist Liste des paramètres à envoyer à la sous-routine, séparés par des virgules. Chaque élément de la liste peut correspondre à un nom de champ, une variable ou une expression arbitraire.

La sous-routine appelée par une instruction call doit être définie auparavant dans l'exécution du script par une instruction sub.

Les paramètres sont copiés dans la sous-routine et, si le paramètre de l'instruction call désigne une variable au lieu d'une expression, il est recopié et supprimé à la fermeture de la sous-routine.

 

  • Comme l'instruction call est une instruction de contrôle et qu'elle se termine donc soit par un point-virgule, soit par un caractère de fin de ligne, elle ne doit pas 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.

 

Cet exemple répertorie tous les fichiers liés à Qlik dans un dossier et ses sous-dossiers, et enregistre les informations des fichiers dans une table. On suppose que vous avez créé une connexion de données appelée Apps dans le dossier.

La sous-routine DoDir est appelée avec la référence au dossier, 'lib://Apps', en tant que paramètre. La sous-routine contient un appel récursif Call DoDir (Dir) qui permet à la fonction de rechercher des fichiers dans les sous-dossiers de façon récursive.

sub DoDir (Root) For Each Ext in 'qvw', 'qvo', 'qvs', 'qvt', 'qvd', 'qvc', 'qvf' For Each File in filelist (Root&'\*.' &Ext) LOAD '$(File)' as Name, FileSize( '$(File)' ) as Size, FileTime( '$(File)' ) as FileTime autogenerate 1; Next File Next Ext For Each Dir in dirlist (Root&'\*' ) Call DoDir (Dir) Next Dir End Sub Call DoDir ('lib://Apps')

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 !