CalcDim — funkcja wykresu
W wyrażeniu wymiaru funkcja CalcDim() zastępuje automatyczną interpretację aparatu dotyczącą wewnętrznej obsługi wyrażenia. W szczególności funkcja zapobiega tworzeniu nowego pola wewnętrznego w modelu danych. Zamiast tego, wybory dokonane w aplikacji są traktowane jak wybory w odpowiednich polach oryginalnego modelu danych.
Tej funkcji nie można używać w skrypcie ładowania. Ponadto najlepszą praktyką w zakresie wydajności systemu jest ładowanie pól używanych w wymiarze wyliczanym jako pól logicznych za pośrednictwem skryptu ładowania, jeśli to możliwe. CalcDim() oferuje sposób kontrolowania zachowania silnika w scenariuszach, w których ładowanie pola wyliczanego ze skryptu nie jest możliwe.
W Qlik Sense wyrażenie wymiaru jest domyślnie realizowane jako „pole w locie”, czyli jako rzeczywiste, tworzone na żądanie pole widoczne na bieżącym pasku wyboru. Wybory są stosowane i wnioskowane do tego pola, podobnie jak do każdego pola logicznego ze skryptu.
Wyrażenie opakowane w CalcDim() będzie działać tak samo jak wszystkie wyrażenia wymiaru wyliczanego działają w QlikView, co polega na doraźnym mapowaniu wyliczanych wartości na bazowe wartości pola źródłowego. Wszystkie obliczenia „pola w locie” można przenieść do wymiarów wyliczanych za pomocą funkcji CalcDim(), ponieważ wymiar wyliczany musi spełniać mniej wymagań opartych na modelu danych niż odpowiadające mu obliczenia „pola w locie”. Ta transformacja może być pożądana w celu zagwarantowania podobnego zachowania dla wszystkich wymiarów wyliczanych, gdzie model danych może uniemożliwiać użycie obliczenia pola tymczasowego w niektórych przypadkach, ale nie w innych.
CalcDim(expr)
Typ zwracanych danych: Dual
| Argument | Opis |
|---|---|
| expr |
Wyrażenie używane jako wymiar lub jako segment w wyrażeniu wymiaru. |
Kiedy używać
Funkcja CalcDim() jest przydatna, gdy potrzebna jest większa kontrola nad sposobem, w jaki silnik Qlik obsługuje pola wywoływane w wyrażeniu wymiaru.
Domyślnie Qlik Sense automatycznie decyduje, czy tworzyć i odwoływać się do pól wewnętrznych w modelu danych, gdy używasz niestandardowego wyrażenia wymiaru. Qlik Sense tworzy i używa tych pól wewnętrznych zawsze, gdy jest to możliwe. Jeśli nie jest to możliwe, wyrażenie jest obsługiwane w odniesieniu do istniejących pól modelu danych, na których się opiera.
W zależności od przypadku użycia, to automatyczne przetwarzanie może nie zawsze być pożądane. Na przykład, jeśli używasz zmiennej w wyrażeniu wymiaru, automatyczne tworzenie nowych pól może stać się problematyczne. W takim przypadku użyj CalcDim(), aby wymusić obsługę wyrażenia bez tej metody.
Oto najczęstsze zastosowania:
-
Zawartość QlikView została zmigrowana do Qlik Sense i chcesz zachować metodę przetwarzania QlikView dla wyliczanych wymiarów.
-
Chcesz uprościć działanie wyboru w swojej aplikacji. Na przykład wolisz wyświetlać wybory pól jako wybory w polach z oryginalnego modelu danych, a nie jako wybory w nowych polach.
-
Ta sytuacja wymaga wyrażenia ad-hoc w celu zapewnienia spójności i wydajności. Na przykład, jeśli wyrażenie wymiaru zawiera kontrolowane przez użytkownika dynamiczne parametry wizualizacji, takie jak kontrolowane formatowanie, wartości odcięcia lub okresy.
| Przykład | Wynik |
|---|---|
| =CalcDim(if(Year < 2023, 'Older', Year)) |
Dokonanie wyboru w wizualizacji, która używa tego wymiaru, zostanie przetworzone i wyświetlone jako wybór w powiązanej wartości pola Year z modelu danych. I odwrotnie, załóżmy, że nie zawijasz wyrażenia w CalcDim(). W tym przypadku wyglądałoby to tak: =if(Year < 2023, 'Older', Year) Dokonanie wyboru w powyższym wyrażeniu zostałoby przetworzone i wyświetlone jako wybór w wewnętrznym polu =if(Year < 2023, 'Older', Year), które nie znajduje się w modelu danych. |