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ą dla wydajności systemu jest ładowanie pól używanych w wymiarze wyliczanym jako pola logiczne za pośrednictwem skryptu ładowania, gdy jest 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 tymczasowe — to znaczy jako rzeczywiste pole, widoczne na bieżącym słupku wyboru, budowane na żądanie. Wybory są stosowane i wnioskowane do tego pola, podobnie jak do każdego pola logicznego ze skryptu.
Wyrażenie zawarte w CalcDim() będzie zachowywać się tak samo, jak wszystkie wyrażenia wymiarów wyliczanych działają w QlikView, co stanowi ad hoc mapowanie wartości wyliczonych na wartości bazowych pól źródłowych. Wszystkie obliczenia pól tymczasowych mogą być przeniesione do wymiarów wyliczanych za pomocą funkcji CalcDim(), ponieważ wymiar wyliczany musi spełniać mniej wymagań opartych na modelu danych niż odpowiadające mu obliczenie pola tymczasowego. 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.
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
CalcDim() jest przydatne, gdy potrzebujesz większej kontroli nad tym, jak 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, gdy tylko jest to możliwe. Gdy nie jest to możliwe, wyrażenie jest obsługiwane z odniesieniem 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 kilka typowych przypadków użycia:
Migrowano zawartość QlikView do Qlik Sense i chcesz zachować metodę przetwarzania QlikView dla wymiarów wyliczanych.
Chcesz uprościć zachowanie 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.
Twój przypadek użycia wymaga wyrażenia ad hoc dla spójności i wydajności. Na przykład, jeśli wyrażenie wymiaru zawiera dynamiczne parametry wizualizacji kontrolowane przez użytkownika, takie jak kontrolowalne 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. |