CalcDim - diagramfunktion | Qlik Sense för WindowsHjälp
Gå till huvudinnehåll Gå till ytterligare innehåll

CalcDim - diagramfunktion

När de används i ett dimensionsuttryck åsidosätter CalcDim() motorns automatiska tolkning av hur uttrycket hanteras internt. Specifikt förhindrar funktionen att ett nytt internt fält skapas i datamodellen. Istället behandlas urval som görs i applikationen som urval i tillämpliga fält från den ursprungliga datamodellen.

Denna funktion kan inte användas iladdningsskriptet. Dessutom är en bästa praxis för systemprestanda att ladda de fält som används i den beräknade dimensionen som logiska fält via laddningsskriptet när det är möjligt. CalcDim() erbjuder ett sätt att styra motorns beteende i scenarier där det inte är möjligt att ladda det beräknade fältet från skriptet.

I Qlik Sense realiseras dimensionuttrycket som standard som ett fält-i-farten – det vill säga som ett faktiskt fält, synligt i det aktuella urvalsfältet, byggt på begäran. Urval tillämpas och härleds till detta fält, liknande alla logiska fält från skriptet.

Ett uttryck som är omslutet av CalcDim() kommer att bete sig på samma sätt som alla beräknade dimensionuttryck fungerar i QlikView, vilket är en ad hoc-mappning av de beräknade värdena till de underliggande källfältvärdena. Alla fält-i-farten-beräkningar kan överföras till beräknade dimensioner med hjälp av funktionen CalcDim() eftersom den beräknade dimensionen måste uppfylla färre krav baserat på datamodellen än motsvarande fält-i-farten-beräkning. Denna omvandling kan vara önskvärd för att garantera ett liknande beteende för alla beräknade dimensioner där datamodellen i vissa fall kan förhindra användningen av en fält-i-farten-beräkning, men inte i andra.

CalcDim(expr)

Returnerad datatyp: Dual

Argument
Argument Beskrivning
expr

Ett uttryck som används som en dimension, eller som ett segment inom ett uttryck i en dimension.

Användning

CalcDim() är användbart när du behöver mer kontroll över hur Qlik-motorn hanterar fälten du anropar i ett dimension-uttryck.

Som standard bestämmer Qlik Sense automatiskt om interna fält ska skapas och refereras i datamodellen när du använder ett anpassat dimension-uttryck. Qlik Sense skapar och använder dessa interna fält närhelst det är möjligt. När detta inte är möjligt hanteras uttrycket med hänvisning till de befintliga fält i datamodellen som det är beroende av.

Beroende på ditt användningsområde kanske denna automatiska behandling inte alltid är önskvärd. Om du till exempel använder en variabel i ett dimension-uttryck kan den automatiska skapandet av nya fält bli problematiskt. I det här fallet använder du CalcDim() för att tvinga uttrycket att hanteras utan denna metod.

Här är några vanliga användningsfall:

  • Du har migrerat QlikView-innehåll till Qlik Sense och du vill bevara QlikView-bearbetningsmetoden för beräknade dimensioner.

  • Du vill förenkla urvalsbeteendet i din applikation. Du föredrar till exempel att visa fältval som val i fält från den ursprungliga datamodellen, snarare än val i nya fält.

  • Ditt användningsfall kräver ett ad hoc-uttryck för konsekvens och prestanda. Till exempel, om ditt dimensionuttryck innehåller användarkontrollerbara dynamiska visualiseringsparametrar, såsom kontrollerbar formatering, avskärningsvärden eller perioder.

Exempel på funktioner
Exempel Resultat
=CalcDim(if(Year < 2023, 'Older', Year))

Om du gör ett val i en visualisering som använder den här dimensionen kommer det att behandlas och visas som ett val i det associerade Year-fältvärdet från datamodellen.

Omvänt, låt oss säga att du inte bäddar in uttrycket i CalcDim(). Då skulle det se ut så här:

=if(Year < 2023, 'Older', Year)

Att göra ett val i ovanstående uttryck skulle bearbetas och visas som ett val i det interna fältet =if(Year < 2023, 'Older', Year), vilket inte finns i datamodellen.

Exempel 1 – Enkel jämförelse

Exempel 2 – Praktiskt användningsfall för att ändra standardbeteendet

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

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!