Ir para conteúdo principal Pular para conteúdo complementar

Sub..end sub

A declaração de controle sub..end sub define uma sub-rotina que pode ser acionada por meio de um comando call.

Sintaxe:  

Sub name [ ( paramlist )] statements end sub

 

Os argumentos são copiados na sub-rotina e, se os parâmetros reais correspondentes no comando call forem o nome de uma variável, serão copiados novamente após a saída da sub-rotina.

Se uma sub-rotina tiver mais parâmetros formais que os parâmetros reais transmitidos por um comando call, os parâmetros extra serão inicializados como NULL e poderão ser utilizados como variáveis locais na sub-rotina.

Argumentos:  

Argumentos
Argumento Descrição
name O nome da sub-rotina.
paramlist Uma lista, separada por vírgulas, de nomes de variáveis para os parâmetros formais da sub-rotina. Eles podem ser usados como qualquer variável dentro da sub-rotina.
statements Qualquer grupo de um ou mais comandos de script do Qlik Sense.

Limitações:  

  • Como o comando sub é um comando de controle e, portanto, termina com um ponto e vírgula ou com um fim de linha, cada uma de suas duas cláusulas possíveis (sub e end sub) não deve ultrapassar o limite da 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 1:  

Sub INCR (I,J)

I = I + 1

Exit Sub when I < 10

J = J + 1

End Sub

Call INCR (X,Y)

Exemplo 2: – transferência de parâmetro

Sub ParTrans (A,B,C)

A=A+1

B=B+1

C=C+1

End Sub

A=1

X=1

C=1

Call ParTrans (A, (X+1)*2)

O resultado do exibido acima será local, dentro da sub-rotina, A será inicializado para 1, B será inicializado para 4 e C será inicializado para NULL.

Durante a saída da sub-rotina, a variável global A receberá 2 como valor (copiado da sub-rotina). O segundo parâmetro real “(X+1)*2” não será copiado de volta porque não é uma variável. Por fim, a variável global C não será afetada pela chamada de sub-rotina.

Saiba mais

 

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!