Call

La sentencia de control call invoca una subrutina que debe ir definida por una sentencia sub anterior.

Syntax:  

Call name ( [ paramlist ])

 

Arguments:  

Argumento Descripción
name El nombre de la subrutina.
paramlist Una lista separada por comas de los parámetros que se habrán de enviar a la subrutina. Cada elemento de la lista puede ser un nombre de campo, una variable o una expresión arbitraria.

La subrutina llamada por una sentencia call debe definirse mediante una sentencia sub que se encuentre anteriormente durante la ejecución del script.

Los parámetros se copian en la subrutina y, si el parámetro en la sentencia call es una variable y no una expresión, se copia nuevamente al salir de la subrutina.

Limitations:  

Puesto que la sentencia call es una sentencia de control y, como tal, finaliza con un punto y coma o un final de línea, no debe superar el límite de una línea.

Example:  

Este ejemplo enumera todos los archivos relacionados con Qlik en una carpeta y sus subcarpetas, y almacena la información de archivos en una tabla. Supongamos que ha creado una conexión de datos con el nombre Apps en la carpeta.

La subrutina DoDir se llama con la referencia a la carpeta, 'lib://Apps', como parámetro. Dentro de la subrutina, hay una llamada recursiva, Call DoDir (Dir), que hace que la función busque archivos de manera recursiva en subcarpetas.

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')