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 wyliczanym wymiarze jako pól logicznych za pośrednictwem skryptu ładowania, jeśli to możliwe. CalcDim() oferuje sposób kontrolowania zachowania silnika w sytuacjach, w których ładowanie wyliczanego pola ze skryptu jest niemoż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 w tym polu, podobnie jak w przypadku 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”. Transformacja ta może być pożądana w celu zagwarantowania podobnego działania dla wszystkich wyliczanych wymiarów, w przypadku których model danych może uniemożliwić użycie pola wyliczanego w locie w niektórych sytuacjach, ale nie w innych.
Składnia:
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ć CalcDim
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.
Qlik Sense domyślnie decyduje automatycznie, czy utworzyć pola wewnętrzne w modelu danych i odwołać się do nich, gdy używane jest niestandardowe wyrażenie wymiaru. Qlik Sense tworzy i wykorzystuje te wewnętrzne pola, gdy tylko 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 zastosowania 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 należy użyć 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 aplikacji. Na przykład wolisz wyświetlać wybory pól jako wybory w polach z oryginalnego modelu danych, a nie 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 wykorzystującej ten wymiar zostanie przetworzone i wyświetlone jako wybór w powiązanej wartości pola Year z modelu danych. I odwrotnie, powiedzmy, że nie opakowujesz wyrażenia w CalcDim(). W tym przypadku wyglądałoby to następująco: =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. |