Ir para conteúdo principal

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:  

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 no comando call for uma variável e não uma expressão, 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.

  • Quando você define uma sub-rotina com Sub..end sub dentro de um comando de controle, por exemplo if..then, você só pode chamar a sub-rotina de dentro do mesmo comando de controle.

Exemplo:  

Este exemplo lista todos os arquivos relacionados do Qlik em uma pasta e em suas subpastas, e armazena informações sobre o arquivo em uma tabela. Supõe-se que você tenha criado uma conexão de dados com o nome Apps à pasta.

A sub-rotina DoDir é chamada com a referência à pasta, 'lib://Apps', como parâmetro. Dentro da sub-rotina, há uma chamada recursiva, Call DoDir (Dir), que faz com que a função procure arquivos recursivamente em subpastas.

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

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!