Gå till huvudinnehåll

Call

Kontrollsatsen call anropar en subrutin som måste vara definierad av en sub-sats på en tidigare plats i skriptet.

Syntax:  

Call name ( [ paramlist ])

 

Argument:  

Argument
Argument Beskrivning
name Subrutinens namn.
paramlist En kommaavgränsad lista över de faktiska parametrar som ska skickas till den underordnade rutinen. Varje parameter i listan kan vara ett fältnamn, ett variabelnamn eller ett godtyckligt uttryck.

Den underordnade rutinen som anropas med hjälp av en call-sats måste vara definierad i en sub-sats som påträffats tidigare under skriptexekveringen.

Parametrarna kopieras in i subrutinen. Om parametern i call-satsen är ett variabelnamn, inte ett uttryck, kopieras dess värde dessutom tillbaka ut igen när subrutinen avslutas.

Begränsningar:  

  • Eftersom call-satsen är en kontrollsats och som sådan slutar med ett semikolon eller ett radslut, får den inte korsa en linjegräns.

  • När du definierar en underordnad rutin med Sub..end sub inuti en kontrollsats, till exempel if..then, kan du bara anropa den underordnade rutinen inifrån samma kontrollsats.

Exempel:  

I det här exemplet visas alla Qlik-relaterade filer i en mapp och dess undermappar, och filinformationen lagras i en tabell. Vi utgår från att du har skapat en dataanslutning med namnet Apps till mappen.

Den underordnade rutinen DoDir anropas med referensen till mappen 'lib://Apps' som parameter. Inuti den underordnade rutinen finns det ett rekursivt anrop, Call DoDir (Dir), som får funktionen att leta efter filer rekursivt i undermappar.

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

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!