Call

O comando de controle call chama uma sub-rotina que deve ser definida por um comando sub prévio.

Sintaxe:  

Call name ( [ paramlist ])

 

Argumentos:  

Argumento Descrição
name O nome da sub-rotina.
paramlist Uma lista separada por vírgulas dos parâmetros reais que serão enviados para a sub-rotina. Cada item da lista deve ser um nome de campo, uma variável ou uma expressão arbitrária.

A sub-rotina chamada por uma declaração call deve ser definida por um sub encontrado anteriormente durante a execução do script.

Os parâmetros são copiados na sub-rotina e, se o parâmetro na declaração call for um nome de campo, serão copiados novamente ao sair da sub-rotina.

Limitações:  

Como o comando call é de controle e, portanto, termina com um ponto e vírgula ou com um fim de linha, ele não deve cruzar um limite de linha.

Exemplo 1:  

// Example 1

Sub INCR (I,J)

I = I + 1

Exit Sub when I < 10

J = J + 1

End Sub

Call INCR (X,Y)

 

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