Call

La sentencia de control call llama a una subrutina que debe ser definida por una sentencia sub previa.

Sintaxis:  

Call name ( [ paramlist ])

 

Argumentos:  

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 invocada mediante una sentencia call debe ir definida por un sub encontrado 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 de nuevo fuera, al salir de la subrutina.

Limitaciones:  

Como la sentencia call es una sentencia de control y, como tal, termina con un punto y coma o fin de línea, no deberá sobrepasar el límite de una línea.

Ejemplo 1:  

// Example 1

Sub INCR (I,J)

I = I + 1

Exit Sub when I < 10

J = J + 1

End Sub

Call INCR (X,Y)

 

Ejemplo 2:  

// Example 2 - List all QV related files on disk

sub DoDir (Root)

For Each Ext in 'qvw', 'qvo', 'qvs', 'qvt', 'qvd', 'qvc'

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 ('C:')