# 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:

Argumenty Dual

| 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.

WskazówkaFunkcja dual jest zwykle używana wcześnie w skrypcie, zanim dane zostaną wczytane do określonego pola, w celu utworzenia pierwszej reprezentacji w postaci znakowej, która będzie pokazana na listach wartości.

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.