Call
De besturingsopdracht call roept een subroutine aan die door een vorige sub-opdracht is gedefinieerd.
Syntaxis:
Call name ( [ paramlist ])
Argumenten:
Argument | Beschrijving |
---|---|
name | De naam van de subroutine. |
paramlist | Een door komma's gescheiden lijst met de werkelijke parameters die worden gezonden aan de subroutine. Elk item in de lijst kan een veldnaam, een variabele of een willekeurige uitdrukking zijn. |
De subroutine die wordt opgeroepen door een call-opdracht moet op een eerdere positie in het script door een sub zijn gedefinieerd.
Parameters worden gekopieerd naar de subroutine en worden, als de parameter in de call-instructie een variabele is en geen uitdrukking, bij het beëindigen van de subroutine weer teruggekopieerd.
Beperkingen:
-
Aangezien de call-opdracht een besturingsopdracht is en dus wordt afgesloten door een puntkomma of het einde van een regel, mag de opdracht niet op meerdere regels staan.
-
Als u een subroutine definieert met Sub..end sub binnen een besturingsopdracht, bijvoorbeeld if..then, kunt u de subroutine alleen oproepen binnen dezelfde besturingsopdracht.
Voorbeeld:
In dit voorbeeld worden alle aan Qlik gerelateerde bestanden in een map en in de bijbehorende submap opgesomd en wordt bestandsinformatie opgeslagen in een tabel. Er wordt vanuit gegaan dat u een gegevensverbinding hebt gemaakt met de naam Apps in de map.
De subroutine DoDir wordt aangeroepen met de verwijzing naar de map , 'lib://Apps', als parameter. Binnen de subroutine, is er een recursieve aanroep, Call DoDir (Dir), waarmee de functie recursief naar bestanden kijkt in submappen.