Modyfikatory zestawów

Aby zmodyfikować zestaw, należy dodać do niego selekcję lub zmienić istniejącą selekcję. Taką modyfikację można zapisać w wyrażeniu zestawu.

Modyfikator składa się z dowolnej liczby nazw pól, a po każdej nazwie podana jest selekcja dokonywana w danym polu. Całość jest ujęta w ostre nawiasy: < i >. Na przykład: <Year={2007,2008},Region={US}>. Nazwy i wartości pól mogą być w zwykły sposób umieszczane w cudzysłowach, na przykład <[Sales Region]={’West coast’, ’South America’}>.

Modyfikator zestawu modyfikuje selekcję poprzedniego identyfikatora zestawu. Jeśli brak jest odniesienia do identyfikatora zestawu, uznaje się za taki bieżący stan selekcji.

Wybór można zdefiniować na kilka sposobów:

  • Na podstawie innego pola
  • Na podstawie zestawów elementów (listy wartości pól w modyfikatorze)
  • Wykluczenie wymuszone

Metody te są opisane w poniższych częściach.

Na podstawie innego pola

Prostym zastosowaniem jest dokonanie selekcji na podstawie wartości wybranych w innym polu, na przykład <OrderDate = DeliveryDate>. Taki modyfikator spowoduje pobranie wybranych wartości z pola DeliveryDate i zastosowanie ich jako selekcji w polu OrderDate. Jeśli odrębnych wartości jest wiele (więcej niż kilkaset), taka operacja bardzo obciąża procesor i nie jest zalecana.

Na podstawie zestawów elementów

Najbardziej typowym przykładem wyrażenia zestawu jest wyrażenie oparte na liście wartości pól ujętych w nawiasy klamrowe. Wartości są rozdzielane przecinkami — na przykład <Year = {2007, 2008}>. Nawiasy klamrowe definiują zestaw elementów, którymi mogą być jawne wartości pól albo wyszukiwania wartości pól.

Jeśli wartości z listy nie zawierają spacji ani znaków specjalnych, cudzysłowy nie są potrzebne. Wartości z listy zostaną po prostu dopasowane do wartości pola. Wielkość liter w porównaniu nie ma znaczenia.

Jeśli wartości z listy zawierają spacje lub znaki specjalne, lub jeśli wymagane jest używanie znaków wieloznacznych, wówczas takie wartości należy ująć w znaki cudzysłowu. Jeśli wartości z listy są jawnymi wartościami pola, należy użyć pojedynczych cudzysłowów. W takim przypadku zostaną dokonane dopasowania (z rozróżnianiem wielkości liter) między wartościami z listy, a wartościami poszczególnych pól.

W przypadku wyszukiwań, tj. ciągów zawierających znaki wieloznaczne lub zaczynających się od operatora relacyjnego lub znaku równości, należy używać cudzysłowów podwójnych. Na przykład <Ingredient = {"*Garlic*"}> spowoduje wybranie wszystkich składników, które zawierają ciąg „Garlic”. Cudzysłowy podwójne można zastąpić nawiasami — na przykład <Ingredient = {[*Garlic*]}>. Cudzysłowy podwójne można zastąpić znakami akcentu grawis — na przykład <Ingredient = {`*Garlic*`}>. W wyszukiwaniach wielkość liter nie jest rozróżniana.

Uwaga:

W poprzednich wersjach Qlik Sense cudzysłowy pojedyncze nie były odróżniane od podwójnych i wszystkie ciągi w cudzysłowach były traktowane jak wyszukiwania. W celu zachowania zgodności z poprzednimi wersjami aplikacje utworzone w starszych wersjach Qlik Sense nadal będą działać tak samo, jak w poprzednich wersjach. Aplikacje utworzone w wersji Qlik Sense November 2017 lub w nowszych wersjach uwzględniają różnice między tymi dwoma typami cudzysłowów.

Wykluczenie wymuszone

W przypadku pól w trybie AND można korzystać z wykluczenia wymuszonego. Aby wymusić wykluczenie wartości wybranych pól, należy podać znak „~” przed nazwą pola.

Uwaga: Tryb AND jest obsługiwany jedynie w przypadku interfejsu API aparatu Qlik.

Examples and results:  

Przykłady Wyniki
sum( {1<Region= {USA} >} Sales ) Zwraca wartość sprzedaży dla regionu USA, , ignorując bieżącą selekcję.
sum( {$<Region = >} Sales ) Zwraca wartość sprzedaży dla bieżącej selekcji, ale usuwa selekcję w wymiarze Region.
sum( {<Region = >} Sales )

Zwraca tę samą wartość co w przykładzie podanym bezpośrednio powyżej. Jeśli modyfikowany zestaw zostanie pominięty, zakładany jest parametr $.

Uwaga: Składnia w dwóch poprzednich przykładach zostanie zinterpretowana jako „brak selekcji” w wymiarze Region, czyli możliwe będą wszystkie regiony z innymi selekcjami. Nie jest to odpowiednik składni <Region = {}> (lub umieszczenia po prawej stronie znaku równości innego tekstu niejawnie powodującego zwrócenie pustego zestawu elementów), która jest interpretowana jako „brak regionu”.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) Zwraca wartość sprzedaży dla bieżącej selekcji, ale z nowymi selekcjami w wymiarach Year i Region.
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

Pole Ingredient znajduje się w trybie AND.

Zwraca wartość sprzedaży dla bieżącej selekcji, ale z wykluczeniem wymuszonym wszystkich składników zawierających ciąg znaków garlic.

sum( {$<Year = {“2*”}>} Sales ) Zwraca wartość sprzedaży dla bieżącej selekcji, ale z wybranymi w polu Year wszystkimi latami zaczynającymi się od cyfry 2 (czyli zazwyczaj od roku 2000).
sum( {$<Year = {“2*”,”198*”}>} Sales ) Podobnie jak powyżej, ale teraz w selekcji uwzględnione są również lata 80. XX wieku.
sum( {$<Year = {“>1978<2004”}>} Sales ) Zwraca wartość sprzedaży dla bieżącego wyboru, ale z wyszukiwaniem liczbowym służącym do określenia zakresu lat w celu zsumowania tamtejszej sprzedaży.