Zewnętrzne wyrażenia zestawu z rozszerzeniami przez znak dolara
Gdy jedno (lub więcej) rozszerzeń przez znak dolara jest używane w większym wyrażeniu, każde rozszerzenie przez znak dolara zostanie obliczone w izolacji, zanim wynik zostanie wstawiony do reszty wyrażenia. Jedną z konsekwencji tej metody oceny jest to, że wyrażenia zestawu poza wyrażeniem rozszerzonym o znak dolara nie będą miały wpływu na wynik. Powoduje to efekt podwójnej oceny informacji w wyrażeniu.
Przykład — sposób obliczania wyrażeń zawierających zewnętrzne wyrażenie zestawu i rozszerzenia przez znak dolara
Załóżmy, że masz następujące przykładowe wyrażenie:
W powyższym wyrażeniu znajduje się wyrażenie zestawu, które wybiera wartości Year z 2024: {<Year={2024}>}. Kiedy jest obliczane całe to przykładowe wyrażenie, to wyrażenie zestawu nie jest stosowane.
Zamiast tego najpierw obliczane jest wyrażenie z rozszerzeniem przez znak dolara $(=Sum(Sales)).
W tym przykładzie załóżmy, że Sum(Sales) daje wynik 1500311. Podczas obliczania wyrażenia {<Year={2024}>} $(=Sum(Sales)) liczba ta jest wstawiana do otaczającego wyrażenia. Ta kolejność oceny skutkuje następującą częściowo ocenioną konfiguracją (zauważ, że nie jest to użyteczne wyrażenie Qlik Sense i zostało pokazane tylko w celu zademonstrowania kolejności oceny):
Następnie wyrażenie {<Year={2024}>} 1500311 jest oceniane jako całość. Wyrażenie zestawu {<Year={2024}>} nie ma żadnego wpływu, ponieważ wyrażenie po jego prawej stronie jest po prostu liczbą, a nie żadnym typem wyrażenia zagregowanego.
W związku z tym, używając wartości Sum(Sales) podanej powyżej w przykładzie, obliczony wynik dla całego wyrażenia {<Year={2024}>} $(=Sum(Sales)) wynosiłby 1500311.
Tworzenie wyrażenia z części
Użycie w wyrażeniu rozszerzenia przez znak dolara powoduje efekt podwójnej oceny. Możesz skorzystać z tego efektu podwójnej oceny, budując wyrażenie przy użyciu części.
Przykład
Załóżmy, że masz następujące przykładowe wyrażenie:
W pierwszej rundzie oceny jest oceniane rozszerzenie przez znak dolara $(='Sum(' & 'Sales' & ')'). Na tym etapie trzy ciągi są łączone w jeden ciąg 'Sum(Sales)'. Ponieważ jest to ciąg znaków, a nie wyrażenie, wyrażenie wewnątrz nie jest w tym momencie obliczane.
Na tym etapie oceny wyrażenie jest interpretowane przez Qlik Sense następująco:
{<Year={2024}>} Sum(Sales)
W tym przypadku zewnętrzne wyrażenie analizy zestawu zostanie zastosowane do agregacji Sum, ponieważ teraz utworzyliśmy normalne wyrażenie, a nie tylko liczbę (jak w pierwszym przykładzie). Należy zauważyć, że znaki cudzysłowu objęły pierwszą rundę oceny, dzięki czemu wyrażenie zostało zachowane (i konkatenowane za pomocą &) do drugiej rundy oceny.
Wyszukiwanie zmiennych
W przypadku użycia rozszerzenia przez znak dolara w celu wyszukania zmiennej zawartość zmiennej jest wstawiana do otaczającego wyrażenia przed obliczeniem tej zawartości.
Przykład
Załóżmy, że masz następujące przykładowe wyrażenie:
W tym przykładzie zawartość zmiennej Var1 zostanie wstawiona do otaczającego ją wyrażenia, zanim ta zawartość zostanie obliczona.
Wynik A — definicja zmiennej bez znaku równości
Jeśli zmienna Var1 jest zdefiniowana jako Sum(Sales), to po rozszerzeniu wyglądałaby tak (zauważ, że poniższa konfiguracja jest częściowo obliczonym wyrażeniem):
W tym przykładzie zostanie więc zastosowane zewnętrzne wyrażenie zestawu {<Year={2024}>}.
Wynik B — definicja zmiennej ze znakiem równości
Z drugiej strony, jeśli definicja w Var1 zaczyna się od znaku równości — czyli =Sum(Sales) — zewnętrzne wyrażenie zestawu nie jest stosowane. Dzieje się tak, ponieważ znak równości powoduje, że zmienna wyrażenia jest obliczana z wyprzedzeniem i w izolacji. Prowadzi to do wyniku podobnego jak w pierwszym przykładzie, w którym istnieje zewnętrzne wyrażenie zestawu do obliczenia wraz z liczbą, które nie zwraca użytecznego wyniku.