Przykłady zmiennych w wyrażeniach
Zmienna w Qlik Sense to nazwana jednostka zawierająca wartość. Jeśli w wyrażeniu jest używana zmienna, wówczas jest zastępowana jej wartością lub definicją.
Sposoby używania zmiennych w wyrażeniu
Zmiennej można używać na dwa różne sposoby: w bezpośrednim odwołaniu lub w rozszerzeniu przez znak dolara. Jeśli użyjesz bezpośredniego odniesienia, wartość zmiennej zostanie użyta w obliczeniach. Jeśli użyjesz rozszerzenia przez znak dolara, całe rozszerzenie przez znak dolara zostanie zastąpione wartością zmiennej, zanim wyrażenie zostanie przeanalizowane. Dlatego te dwie różne metody mogą zwracać różne wyniki.
Przykład: używanie zmiennej z rozszerzeniem przez znak dolara
Zmienna x zawiera ciąg tekstowy Sum(Sales).
Na wykresie użytkownik definiuje wyrażenie $(x)/12. Wynik jest dokładnie taki sam, jak wynik wyrażenia wykresu Sum(Sales)/12.
Jeśli jednak wartość zmiennej x zostanie zmieniona na przykład na Sum(Budget), wówczas dane na wykresie zostaną natychmiast ponownie obliczone, a wyrażenie będzie interpretowane jako Sum(Budget)/12.
Przykład: zmienna z rozszerzeniem przez znak dolara w tabeli przestawnej
Załóżmy, że masz tabelę przestawną lub obiekt Przestawienie z następującymi elementami:
-
Wymiary to Product Type i Product Name.
-
Miary to Sum(Sales) i Count (distinct InvoiceNumber).
-
Elementy w sekcji Kolumny to Wartości (domyślne) oraz pole Quarter.
Możesz użyć zmiennych, aby zachęcić do interaktywnej analizy. Załóżmy, że utworzysz również zmienną vUserInteraction z pustą definicją. Następnie utworzysz w arkuszu dwa wykresy z Przyciskami, skonfigurowane za pomocą działania Ustaw wartość zmiennej:
-
Pokaż więcej szczegółów: kliknięcie tego przycisku ustawia vUserInteraction na wartość ='Yes'.
-
Pokaż mniej szczegółów: kliknięcie tego przycisku ustawia vUserInteraction na wartość ='No'.
W tabeli przestawnej możesz dodać do wykresu szereg dodatkowych miar, takich jak Count(Quantity) i Sum(Cost). Następnie skonfiguruj każdą kolumnę miary tak, aby miała następującą wartość Pokaż kolumnę, jeśli:
'$(Reference)'='Yes'
Dzięki temu wykres można dostosować do tego, czy użytkownik potrzebuje dodatkowych informacji. Jeśli użytkownik kliknie przycisk Pokaż więcej szczegółów, do tabeli zostaną dodane dodatkowe miary. W przeciwnym razie lub po kliknięciu przycisku Pokaż mniej szczegółów dodatkowe miary zostaną usunięte.
Więcej przykładów: używanie zmiennych w rozszerzeniach przez znak dolara
Rozszerzenia przez znak dolara są wszechstronnym i potężnym narzędziem w Qlik Sense, z wieloma możliwymi zastosowaniami. Więcej przykładów można znaleźć w sekcji Rozszerzenia przez znak dolara.
Przykład: bezpośrednie odwołanie do zmiennej w wyrażeniu
Używanie zmiennej jako bezpośredniego odwołania jest mniej powszechne, ale nadal przydatne. Na przykład:
Załóżmy, że w Twoim modelu danych znajduje się pole TransactionSummary, które zawiera podsumowania transakcji w postaci tekstu dowolnego. Pole to może zawierać dodatkowe informacje o transakcjach. Na przykład transakcja może mieć podsumowanie w celu udokumentowania, że klient zakupił produkt na kredyt w sklepie lub w celu udokumentowania wszelkich kwestii, które pojawiły się podczas sprzedaży.
W swojej aplikacji możesz chcieć użyć TransactionSummary, ale chcesz umieścić dane w kontekście bez wpływu na model danych lub skrypt ładowania i bez przechowywania ich w innym miejscu wykresu.
Możesz wykonać następujące czynności:
-
Utwórz zmienną o nazwie vIntroStatement w oknie dialogowym zmiennych z następującą definicją:
='The following summary was provided by the vendor: '
-
Dodaj następującą miarę do wykresu Tekst i grafika:
vIntroStatement & TransactionSummary
Zapisanie instrukcji wprowadzającej jako zmiennej pozwala centralnie kontrolować użycie wartości. Na przykład zmienna vIntroStatement może być używana na wielu wykresach i w ramach wielu różnych miar (na przykład może istnieć oddzielny wykres, który czasami zawiera tekst opisujący, ile sztuk zostało sprzedanych podczas transakcji). Użycie zmiennej pozwala uprościć proces aktualizowania wyrażeń w aplikacji. Aby dokonać zmiany w sformułowaniu, wystarczy zaktualizować zmienną, a zmiany zostaną odzwierciedlone w całej aplikacji.
Interpretacja nazw
Nie zaleca się nadawania zmiennej nazwy takiej samej, jaką ma pole lub funkcja w programie Qlik Sense. Należy jednak wiedzieć, jak jej używać w wyrażeniu.
Przykład:
Ciąg XXX reprezentuje pole, zmienną, funkcję lub miarę. Ciąg XXX będzie interpretowany jako jeden z tych obiektów w zależności od sposobu utworzenia wyrażenia.
Wyrażenie | XXX interpretowane jako |
---|---|
XXX | miara, zmienna lub pole |
$(XXX) | zmienna |
Count(XXX) | pole lub zmienna |
XXX() | funkcja |
Podczas nazywania elementu unikaj nadawania tej samej nazwy więcej niż jednemu polu, zmiennej lub mierze. Podczas rozwiązywania konfliktów między obiektami o identycznych nazwach istnieje ścisła kolejność. Kolejność ta jest odzwierciedlana we wszystkich obiektach lub kontekstach, w których są używane te elementy. Kolejność jest następująca:
-
Wewnątrz agregacji pole ma pierwszeństwo przed zmienną. Etykiety miar nie są istotne w agregacjach i nie mają priorytetu.
-
Poza agregacją etykieta miary ma pierwszeństwo przed zmienną, która z kolei ma pierwszeństwo przed polem.
-
Dodatkowo, poza agregacją, miary można użyć ponownie przez odwołanie się do jej etykiety, chyba że etykieta jest w rzeczywistości obliczana. W takiej sytuacji miara traci na znaczeniu w celu zmniejszenia ryzyka odwoływania się do samego siebie i wtedy nazwa zawsze będzie interpretowana po pierwsze jako etykieta miary, po drugie jako nazwa pola, a po trzecie jako nazwa zmiennej.
Jako najlepszą praktykę warto rozważyć używanie standardowej konwencji nazewnictwa dla zmiennych tworzonych w aplikacji. Na przykład możesz zadbać o to, by wszystkie zmienne nazwy zaczynały się na v. Przykład: vTekstUżytkownika. Pomaga to w szybkim rozpoznawaniu zmiennych jako zmiennych oraz odróżnianiu ich od miar, pól i funkcji.
Obliczanie zmiennej
Istnieje kilka sposobów używania zmiennych z obliczonymi wartościami w aplikacji Qlik Sense, a wynik zależy od sposobu ich określenia oraz wywoływania w wyrażeniu.
W tym przykładzie wymagane jest załadowanie następujących danych w edytorze ładowania danych:
Zdefiniujmy dwie zmienne w oknie dialogowym zmiennych:
- Nazwa vSales Definicja'Sum(Sales)'
- Nazwa vSales2 Definicja'=Sum(Sales)'
W drugiej zmiennej dodajemy znak równości przed wyrażeniem. Spowoduje to obliczenie zmiennej przed jej rozwinięciem i ocenę wyrażenia.
W przypadku użycia zmiennej vSales w niezmienionej postaci, na przykład w mierze, wynikiem będzie ciąg Sum(Sales), co oznacza, że obliczenie nie jest wykonywane.
W przypadku dodania rozszerzenia przez znak dolara i wywołania $(vSales) w wyrażeniu, zmienna zostaje rozwinięta i wyświetlana jest suma Sales.
Z kolei po wywołaniu $(vSales2) zmienna będzie obliczona przed rozwinięciem. Oznacza to, że wyświetlony wynik jest sumą całkowitą Sales. Różnica między użyciem =$(vSales) i =$(vSales2) jako wyrażeń miary jest widoczna w tym wykresie ukazującym wyniki.
Dim | $(vSales) | $(vSales2) |
---|---|---|
A | 350 | 1560 |
B | 470 | 1560 |
C | 740 | 1560 |
Jak widać, $(vSales) daje w wyniku sumę częściową dotyczącą wartości wymiaru, natomiast $(vSales2) — sumę całkowitą.