Skriptvariabler
En variabel i QlikView är en behållare som lagrar ett statiskt värde eller en beräkning, till exempel ett numeriskt eller ett alfanumeriskt värde. När du använder variabeln i dokumentet kan alla förändringar som görs i variabeln tillämpas överallt där variabeln används. Variabler definieras i skriptet med hjälp av skriptredigeraren, där variabeln får sitt värde från en Let-sats, Set-sats eller annan kontrollsats i laddningsskriptet.
Om det första tecknet i ett variabelvärde är ett likhetstecken ”=” kommer QlikView att försöka utvärdera värdet som en formel (QlikView-uttryck) och därefter visa eller returnera resultatet snarare än visa den faktiska formeln.
När variabeln används ersätts den av sitt värde. Variabler kan användas för dollarteckenexpansion eller i olika kontrollsatser i skriptet. Det är väldigt praktiskt om samma sträng förekommer flera gånger i skriptet, t.ex. en sökväg.
Vissa speciella systemvariabler ställs dock in av QlikView i början av skriptexekveringen oavsett vilket värde de tidigare hade i layouten.
När en variabel definieras används följande syntax:
eller
let variable = expression
används. Kommandot Set tilldelar texten till höger om lika med-tecknet till variabeln, medan kommandot Let utvärderar uttrycket.
Variabler är skiftlägeskänsliga.
Exempel:
set HidePrefix = $ ; //-variabeln får tecknet '$' som värde.
let vToday = Num(Today()); // returnerar serienumret för dagens datum.
Beräkning med variabler
Det finns flera sätt att använda variabler med beräknade värden i QlikView. Resultatet beror på hur du definierar den och hur du anropar den i ett uttryck.
I detta exempel läser vi in data inline:
Nu ska vi definiera två variabler:
I den andra variabeln lägger vi till ett likhetstecken framför uttrycket. Nu beräknas variabeln innan den expanderas och innan uttrycket utvärderas.
Om du använder variabeln vSales som den är, exempelvis i ett mått, blir resultatet strängen Sum(Sales). Med andra ord görs ingen beräkning.
Om du lägger till en dollarteckenexpansion och anropar $(vSales) i uttrycket, expanderas variabeln, och summan av Sales visas.
Om du i stället anropar $(vSales2) beräknas variabeln innan den expanderas. Detta innebär att resultatet som visas är totalsumman för Sales. Skillnaden mellan att använda =$(vSales) och =$(vSales2) som måttuttryck visas i diagrammet nedan. Resultat:
Dim | $(vSales) | $(vSales2) |
---|---|---|
A | 350 | 1560 |
B | 470 | 1560 |
C | 740 | 1560 |
Som du ser resulterar $(vSales) i delsumman för ett dimensionsvärde, medan $(vSales2) resulterar i totalsumman.