Zu Hauptinhalt springen

Call

Der Steuerungsbefehl call ruft eine Subroutine auf, die vorher durch einen sub-Befehl definiert werden muss.

Syntax:  

Call name ( [ paramlist ])

 

Argumente:  

Argumente
Argument Beschreibung
name Der Name der Subroutine.
paramlist Eine durch Komma getrennte Liste der Parameter, die an die Subroutine übergeben werden. Jeder Eintrag dieser Liste kann ein Feldname, eine Variable oder eine beliebige Formel sein.

Die Subroutine, die von einem call-Befehl aus aufgerufen wird, muss bereits an einer vorherigen Stelle im Skript durch ein sub definiert sein.

Die Parameter werden dabei in die Subroutine kopiert und, sofern es sich beim Parameter im call-Befehl um eine Variable und nicht um eine Formel handelt, beim Beenden der Subroutine auch wieder zurückkopiert.

Beschränkungen:  

  • Da call zu den Steuerungsbefehlen gehört und daher mit einem Semikolon oder einer Zeilenschaltung abschließt, darf sich der Befehl nicht über mehrere Zeilen erstrecken.

  • Wenn Sie eine Unterroutine mit Sub..end sub innerhalb eines Steuerungsbefehls definieren, beispielsweise if..then, können Sie nur die Unterroutine innerhalb des gleichen Steuerungsbefehls aufrufen.

Beispiel:  

Dieses Beispiel lädt eine Liste aller Qlik-relevanten Dateien in einem Ordner und seinen Unterordnern. Die Dateiinformationen werden in einer Tabelle gespeichert. Es wird angenommen, dass Sie eine Datenverbindung mit dem Namen Apps zu diesem Ordner erstellt haben.

Die DoDir-Subroutine wird mit der Referenz auf den Ordner 'lib://Apps' als Parameter aufgerufen. In der Subroutine befindet sich eine Rekursion Call DoDir (Dir). Diese sorgt dafür, dass die Funktion in den Unterordnern rekursiv nach Dateien sucht.

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

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!