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 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.