Gå till huvudinnehåll

Dual - skript- och diagramfunktion

Dual() kombinerar ett tal och en sträng till en enda post, så att talrepresentationen av posten kan användas för sortering och beräkning, samtidigt som strängvärdet kan användas för visning

Syntax:  

Dual(text, number)

Return data type: dual

Arguments:  

Dual-argument
Argument Beskrivning
text Strängvärdet som ska användas i kombination med talargumentet.
number Talet som ska användas i kombination med strängen i strängargumentet.

I QlikView är alla fältvärden potentiellt duala värden. Detta innebär att fältvärdena både kan ha ett numeriskt värde och ett textvärde. Exempelvis kan ett datum ha det numeriska värdet 40908 och textrepresentationen '2011-12-31'.

När flera dataelement som läses in i ett fält har olika textsträngar men samma numeriska värde, kommer de alla att dela den första textsträngen.

Tips: Funktionen dual används vanligen tidigt i skriptet, innan andra data har lästs in i det berörda fältet, för att skapa denna första textsträng som kommer att visas i listboxar.

Example 1:  

Lägg till följande exempel i skriptet och kör det.

Load dual ( NameDay,NumDay ) as DayOfWeek inline

[ NameDay,NumDay

Monday,0

Tuesday,1

Wednesday,2

Thursday,3

Friday,4

Saturday,5

Sunday,6 ];

 

Fältet DayOfWeek kan användas i ett diagram, som en dimension till exempel. I en tabell med veckodagar sorteras de automatiskt i rätt nummerordning i stället för i alfabetisk ordning.

Example 2:  

Load Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter AutoGenerate 1;

Det här exemplet letar rätt på aktuellt kvartal. Det visas som Q1 när funktionen Now() körs under de första tre månaderna under året, Q2 för följande tre månader och så vidare. Om du använder sortering kommer dock fältet Quarter att fungera som sitt numeriska värde: 1 till 4.

Example 3:  

Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter

Som i tidigare exempel skapas fältet Quarter med textvärdena 'Q1' till 'Q4', och tilldelas de numeriska värdena 1 till 4. För att kunna använda detta i skriptet måste värdena för Date laddas.

Example 4:  

Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek

Det här exemplet skapar ett fält YearWeek med textvärden i formen '2012-W22' och tilldelar samtidigt ett numeriskt värde som motsvarar datumnumret för veckans första dag, exempelvis: 41057. För att kunna använda detta i skriptet måste värdena för Date laddas.