Vai al contenuto principale

Call

L'istruzione di controllo call consente di chiamare una subroutine che deve essere definita da un'istruzione sub precedente.

Sintassi:  

Call name ( [ paramlist ])

 

Argomenti:  

Argomenti
Argomento Descrizione
name Il nome della subroutine.
paramlist Un elenco separato da virgole di parametri effettivi da inviare alla subroutine. Ogni voce dell'elenco può essere un nome di campo, una variabile o un'espressione arbitraria.

La subroutine chiamata da un'istruzione call deve essere definita da un'istruzione sub rilevata precedentemente durante l'esecuzione dello script.

I parametri vengono copiati nella subroutine e, se il parametro nell'istruzione call è una variabile e non un'espressione, verranno copiati nuovamente all'uscita dalla subroutine.

Limiti:  

  • Poiché call è un'istruzione di controllo e come tale termina con un punto e virgola o con un carattere di fine riga, non deve superare un limite di riga.

  • Quando si definisce una routine secondaria con Sub..end sub all'interno di un'istruzione di controllo, ad esempio if..then, è possibile richiamare la routine secondaria solo dall'interno della stessa istruzione di controllo.

Esempio:  

In questo esempio sono mostrati tutti i file correlati a Qlik all'interno di una cartella e delle relative sottocartelle e le informazioni dei file vengono memorizzate in una tabella. Si presuppone che sia stata creata una connessione dati alla cartella denominata Apps.

La subroutine DoDir viene chiamata con il riferimento alla cartella, 'lib://Apps', come parametro. All'interno della subroutine, è presente una chiamata ricorrente Call DoDir (Dir), che indica alla funzione di ricercare in modo ricorrente i file nelle sottocartelle.

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

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!