Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

CalcDim - Diagrammfunktion

Wenn CalcDim() in einer Dimensions-Formel verwendet wird, überschreibt dies die automatische Interpretation der Engine, wie die Formel intern verarbeitet werden soll. Spezifisch verhindert die Funktion, dass im Datenmodell ein neues internes Feld erstellt wird. Stattdessen werden die in der App getroffenen Auswahlen als Auswahlen in den entsprechenden Feldern des ursprünglichen Datenmodells behandelt.

Diese Funktion kann nicht im Ladeskript verwendet werden. Für eine bessere Systemleistung empfiehlt es sich, die in einer berechneten Dimension verwendeten Felder nach Möglichkeit über das Ladeskript als logische Felder zu laden. Mit CalcDim() können Sie das Verhalten der Engine in Szenarien steuern, in denen das Laden des berechneten Felds über das Skript nicht möglich ist.

In Qlik Sense wird der Dimensionsausdruck standardmäßig als fliegendes Feld (field-on-the-fly) umgesetzt, d. h. als tatsächliches Feld, das in der aktuellen Auswahlleiste angezeigt und bei Bedarf erstellt wird. Auswahlen werden auf dieses Feld angewendet und daraus abgeleitet, ähnlich wie bei jedem logischen Feld aus dem Skript.

Ein Ausdruck, der in CalcDim() eingeschlossen ist, verhält sich genauso wie alle Ausdrücke für berechnete Dimensionen in QlikView. Hierbei handelt sich um eine Ad-hoc-Zuordnung der berechneten Werte zu den zugrunde liegenden Werten der Quellfelder. Alle Berechnungen für fliegende Felder können mit der Funktion CalcDim() in berechnete Dimensionen übertragen werden, da die berechnete Dimension aufgrund des Datenmodells weniger Anforderungen erfüllen muss als die entsprechende Berechnung für fliegende Felder. Diese Umwandlung kann wünschenswert sein, um ein ähnliches Verhalten für alle berechneten Dimensionen zu gewährleisten, bei denen das Datenmodell die Verwendung einer Berechnung für fliegende Felder in bestimmten Fällen verhindern kann.

Syntax:  

CalcDim(expr)

Rückgabe Datentyp: dual

Argumente
Argument Beschreibung
expr

Ein Ausdruck, der als Dimension oder als Segment innerhalb eines Dimensionsausdrucks verwendet wird.

Verwendung von CalcDim

CalcDim() ist nützlich, wenn Sie mehr Kontrolle darüber benötigen, wie die Qlik Engine die in einem Dimensionsausdruck aufgerufenen Felder verarbeitet.

Standardmäßig entscheidet Qlik Sense automatisch, ob interne Felder im Datenmodell erstellt und referenziert werden sollen, wenn Sie einen benutzerdefinierten Dimensionsausdruck verwenden. Qlik Sense erstellt und verwendet diese internen Felder, wann immer dies möglich ist. Wenn dies nicht möglich ist, wird der Ausdruck anhand der vorhandenen Datenmodellfelder verarbeitet, auf die er sich bezieht.

Je nach Anwendungsfall ist diese automatische Verarbeitung vielleicht nicht immer wünschenswert. Wenn Sie zum Beispiel eine Variable in einem Dimensionsausdruck verwenden, kann sich die automatische Erstellung neuer Felder zu einem Problem entwickeln. Verwenden Sie in diesem Fall CalcDim(), damit der Ausdruck ohne diese Methode verarbeitet wird.

Im Folgenden finden Sie einige allgemeine Anwendungsfälle:

  • Sie haben QlikView Inhalte zu Qlik Sense migriert und möchten die QlikView Verarbeitungsmethode für berechnete Dimensionen beibehalten.

  • Sie möchten das Auswahlverhalten in Ihrer App vereinfachen. Beispielsweise ziehen Sie es vor, Feldauswahlen als Auswahlen in Feldern des ursprünglichen Datenmodells anzuzeigen, statt als Auswahlen in neuen Feldern.

  • Ihr Anwendungsfall benötigt einen Ad-hoc-Ausdruck für Konsistenz und Leistung. Beispielsweise dann, wenn Ihr Dimensionsausdruck vom Benutzer steuerbare dynamische Visualisierungsparameter enthält, wie steuerbare Formatierungen, Grenzwerte oder Zeiträume.

Funktionsbeispiele
Beispiel Ergebnis
=CalcDim(if(Year < 2023, 'Older', Year))

Eine Auswahl in einer Visualisierung, die diese Dimension verwendet, wird als Auswahl im zugehörigen Feldwert Year aus dem Datenmodell verarbeitet und angezeigt.

Nehmen wir umgekehrt an, Sie schließen den Ausdruck nicht in CalcDim() ein. In diesem Fall sähe das Ergebnis folgendermaßen aus:

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

Eine Auswahl im obigen Ausdruck würde als Auswahl im internen Feld =if(Year < 2023, 'Older', Year) verarbeitet und angezeigt, das nicht im Datenmodell enthalten ist.

Beispiel 1 – Einfacher Vergleich

Beispiel 2 – Praktischer Anwendungsfall zur Änderung des Standardverhaltens

Weitere Informationen

 

Hat diese Seite Ihnen geholfen?

Wenn Sie ein Problem mit dieser Seite oder ihrem Inhalt feststellen, sei es ein Tippfehler, ein ausgelassener Schritt oder ein technischer Fehler, informieren Sie uns bitte!