Dual — funkcja skryptu i funkcja wykresu
Funkcja Dual() łączy liczbę i ciąg znaków w jeden rekord, dzięki czemu liczbowa reprezentacja rekordu może zostać użyta na potrzeby sortowania i obliczania (wartość ciągu znaków może natomiast zostać użyta do celów wyświetlania).
Składnia:
Dual(text, number)
Typ zwracanych danych: podwójny
Argumenty:
Argument | Opis |
---|---|
text | Wartość ciągu znaków używana w kombinacji z argumentem liczbowym. |
number | Liczba używana w kombinacji z ciągiem w argumencie ciągu. |
W aplikacji QlikView wszystkie wartości pola są potencjalnie wartościami podwójnymi. Oznacza to, że wartości pola mogą mieć zarówno wartość liczbową, jak i tekstową. Przykładem może być data, która może mieć wartość liczbową 40908 i reprezentację tekstową '2011-12-31'.
Gdy kilka elementów danych wczytanych do jednego pola ma różne reprezentacje w postaci ciągu, ale tę samą poprawną reprezentację liczbową, wówczas wszystkie one będą mieć tę samą pierwszą napotkaną reprezentację w postaci ciągu.
Przykład 1:
Dodaj poniższe przykłady do skryptu i uruchom go.
Load dual ( NameDay,NumDay ) as DayOfWeek inline
[ NameDay,NumDay
Monday,0
Tuesday,1
Wednesday,2
Thursday,3
Friday,4
Saturday,5
Sunday,6 ];
Pole DayOfWeek może być zastosowane w wykresie, na przykład jako wymiar. W tabeli z dniami tygodnia dni są automatycznie sortowane według właściwego numeru kolejnego, nie w porządku alfabetycznym.
Przykład 2:
Load Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter AutoGenerate 1;
Na tym przykładzie wyszukiwany jest bieżący kwartał. Jest on wyświetlany jako Q1, gdy funkcja Now() jest uruchamiana w pierwszych trzech miesiącach roku, Q2, gdy w drugich trzech miesiącach itp. Jeśli jednak pole Quarter jest używane w sortowaniu, będzie zachowywać się jak jego wartość liczbowa: od 1 do 4.
Przykład 3:
Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter
Podobnie jak w poprzednim przykładzie pole Quarter jest tworzone z wartościami tekstowymi od 'Q1' do 'Q4' i są do niego przypisywane wartości liczbowe od 1 do 4. Aby użyć go w skrypcie, należy załadować wartości dla Date.
Przykład 4:
Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek
W tym przykładzie tworzone jest pole YearWeek z wartościami tekstowymi formularza '2012-W22', a jednocześnie przypisywana jest wartość liczbowa odpowiadająca numerowi daty pierwszego dnia tygodnia, na przykład: 41057. Aby użyć go w skrypcie, należy załadować wartości dla Date.