Gå till huvudinnehåll Gå till ytterligare innehåll

Sub..end sub

Kontrollsatsen sub..end sub definierar en subrutin som kan anropas från en call-sats.

Syntax:  

Sub name [ ( paramlist )] statements end sub

 

Argument kopieras in i subrutinen. Om motsvarande faktiska parameter i call-satsen är ett variabelnamn, kopieras de dessutom tillbaka ut igen när subrutinen avslutas.

Om en underordnad rutin har fler formella parametrar än antalet faktiska parametrar som skickas från en call-sats, initialiseras de extra parametrarna till NULL och kan användas som lokala variabler inom den underordnade rutinen.

Argument:  

Argument
Argument Beskrivning
name Subrutinens namn.
paramlist En kommaavgränsad lista över variabelnamn för den underordnade rutinens formella parametrar. Dessa kan användas som valfri variabel inuti subrutinen.
statements Valfri grupp av en eller flera Qlik Sense-skriptsatser.

Begränsningar:  

  • Eftersom sub-satsen är en kontrollsats, och som sådan slutar med ett semikolon eller radslut, måste var och en av dess två möjliga satser (sub och end sub) rymmas på en egen rad i skriptet.

  • 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 1:  

Sub INCR (I,J)

I = I + 1

Exit Sub when I < 10

J = J + 1

End Sub

Call INCR (X,Y)

Exempel 2: - parameteröverföring

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)

Resultatet av exemplet ovan blir följande (lokalt, inuti subrutinen): A initialiseras till 1, B initialiseras till 4 och C initialiseras till NULL.

När man lämnar subrutinen får den globala variabeln A värdet 2 (kopieras tillbaka från subrutinen). Den andra faktiska parametern “(X+1)*2” kopieras inte tillbaka eftersom den inte är någon variabel. Slutligen påverkas den globala variabeln C inte av subrutinens anrop.

Mer information

 

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!