Arbeta med variabler i Skriptredigeraren
En variabel i Qlik Sense ä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 appen kan alla förändringar som görs för variabeln tillämpas överallt där variabeln används. Du kan definiera variabler med hjälp av variabelöversikten eller i skript med hjälp av Skriptredigeraren. Du ställer in värdet för en variabel med Let eller Set uttalanden i dataladdningsskriptet.
Översikt
Om det första tecknet i ett variabelvärde är ett likhetstecken ”=” kommer Qlik Sense att försöka utvärdera värdet som en formel (Qlik Sense-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 Qlik Sense i början av skriptexekveringen oavsett vilket värde de tidigare hade i layouten.
Definiera en variabel
Variabler gör det möjligt att lagra statiska värden eller resultatet av en beräkning. När en variabel definieras använder du följande syntax:
eller
let variable = expression
Satsen Set används för strängtilldelning. Den tilldelar texten till höger om likhetstecknet till variablerna. Satsen Let utvärderar ett uttryck till höger om likhetstecknet under skriptets körningstid och tilldelar resultatet av uttrycket till variabeln.
Variabler är skiftlägeskänsliga.
Exempel:
set x = 3 + 4; //-variabeln får strängen '3 + 4' som värde.
let x = 3 + 4; // returnerar 7 som värde.
set x = Today(); // returnerar 'Today()' som värde.
let x = Today(); // returnerar dagens datum som värde, till exempel ‘9/27/2021’.
Namnge dina variabler
Överväg som bästa praxis att använda en standardiserad namnkonvention för de variabler som du skapar i en app. Exempelvis kan du se till att alla dina variabelnamn börjar med v. Exempel: vUserText. Detta hjälper till att säkerställa att variabler snabbt identifieras som variabler och särskiljs från mått, fält och funktioner.
Ytterligare alternativ vid definition av variabler
Detta delavsnitt listar ytterligare funktioner som du kan använda för att förbättra kraften hos variabler som du definierar i laddningsskriptet.
Begränsa variabelvärden
Du kan använda Constrain satser för att begränsa skriptvariabler till specifika definitioner, vilket förhindrar att oönskade värden laddas. Constrain satser kan användas för kvalitetssäkring, förbättrat samarbete under skriptkodutveckling och ökad säkerhet för analysappar. I Qlik Cloud kan Constrain-satser även användas i kombination med utvecklar-API:et för dynamiska variabeluppdateringar vid omladdning.
Mer information finns i Constrain.
Definiera skriptspecifika variabler
Du kan använda systemvariabeln ScriptOnlyVariables för att ställa in skriptspecifika variabler. En skriptspecifik variabel är endast tillgänglig i laddningsskriptet och visas inte i till exempel arkvyn i appen.
Mer information finns i ScriptOnlyVariables.
Släppa variabler
Du kan använda en Drop variable sats för att släppa variabler i skriptet. Att släppa en variabel är användbart när du vill använda en variabel endast för att utföra beräkningar eller definiera fält i datamodellens kontext.
Mer information finns i Drop variable.
Ta bort en variabel
Om du tar bort en variabel från skriptet och laddar data igen stannar variabeln kvar i appen. Om du vill ta bort variabeln helt från appen kan du göra något av följande:
Ta bort variabeln från variabeldialogen.
Släpp variabeln i skriptet med en Drop variable sats.
Ange variabler som inte behövs i variabeldialogen som skriptspecifika variabler genom att använda systemvariabeln ScriptOnlyVariables i skriptet.
Mer information finns i Ta bort en variabel.
Ladda ett variabelvärde som ett fältvärde
Om du vill ladda ett variabelvärde som ett fältvärde i en LOAD-sats och resultatet av dollarexpansionen är text i stället för tal eller ett uttryck måste du bifoga den utvidgade variabeln inom enkla citattecken.
Exempel:
Detta exempel laddar systemvariablen som innehåller listan över skriptfel till en tabell. Lägg märke till att expansionen av ScriptErrorCount i If-satsen inte kräver citattecken, men att expansionen av ScriptErrorList kräver citattecken.
Beräkning med variabler
Det finns flera sätt att använda variabler med beräknade värden i Qlik Sense. Resultatet beror på hur du definierar den och hur du anropar den i ett uttryck.
I detta exempel laddar vi vissa 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.
Följande skriptvariabler är tillgängliga: