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 appen som urval i tillämpliga fält från de 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 dimensionsuttrycket som standard som ett fält i farten, det vill säga som ett faktiskt fält som syns i det aktuella urvalsfältet och som byggs upp på begäran. Urval tillämpas och härleds till det här fältet, på samma sätt som alla logiska fält i skriptet.
Ett uttryck som är inbäddat i CalcDim() kommer att fungera på samma sätt som alla uttryck för beräknade dimensioner fungerar i QlikView, vilket är en ad hoc-mappning av de beräknade värdena till de underliggande källfältsvä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 datatransformering kan vara önskvärd för att garantera ett liknande beteende för alla beräknade dimensioner där datamodellen kan förhindra användningen av en fält-i-farten-beräkning i vissa fall, men inte i andra.
Syntax:
CalcDim(expr)
Returnerad datatyp: dual
Argument | Beskrivning |
---|---|
expr |
Ett uttryck som används som en dimension, eller som ett segment inom ett uttryck i en dimension. |
När ska du använda CalcDim
CalcDim() är användbart när du behöver mer kontroll över hur Qlik-motorn hanterar de fält som du åberopar i ett uttryck för dimension.
Som standard avgör Qlik Sense automatiskt om interna fält ska skapas och refereras till i datamodellen när du använder ett uttryck för en anpassad dimension. Qlik Sense skapar och använder dessa interna fält när 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 t.ex. använder en variabel i ett uttryck för en dimension kan det automatiska skapandet av nya fält bli problematiskt. Använd i så fall CalcDim() för att tvinga fram att uttrycket hanteras utan denna metod.
Några vanliga anvädningsfall:
-
Du har migrerat innehåll från QlikView till Qlik Sense och du vill behålla QlikViews bearbetningsmetod för beräknade dimensioner.
-
Du vill förenkla urvalsbeteendet i din app. 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 dimensionsuttryck innehåller användarkontrollerbara dynamiska visualiseringsparametrar, såsom kontrollerbar formatering, avgränsningsvärden eller perioder.
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) Om du gör ett val i ovanstående uttryck skulle det behandlas och visas som ett val i det interna fältet =if(Year < 2023, 'Older', Year), som inte finns i datamodellen. |