Gå till huvudinnehåll

Referenser till fält, mått och variabler

PÅ DEN HÄR SIDAN

Referenser till fält, mått och variabler

Ett uttryck kan innehålla referenser till fält, variabler och mått.

I de flesta fall är uttryck aggregeringar, dvs. beräkningar som kan omfatta flera poster. Det innebär att alla fältreferenser i ett uttryck måste omslutas av en aggregeringsfunktion. Om ingen aggregeringsfunktion används, används funktionen Only().

När namnet på ett mått används inuti ett uttryck tolkas det som ett alias för måttet. Det innebär att du kan återanvända element som redan har definierats. Originalmått och mått kan bara återanvändas på det här sättet inne i samma diagram.

Du kan definiera ett mått rekursivt. Måttet kan alltså innehålla en referens till sig självt. Det ska du dock bara göra i diagram med få rader. Prestanda försämras om diagrammet har många rader. Om flera hundra rader ingår slutar den rekursiva definitionen att fungera.

En variabel kan användas på två olika sätt, i en direkt referens eller i en dollarexpansion. Om du använder en direkt referens används variabelvärdet i beräkningen. Om du använder en dollarexpansion ersätts hela dollarexpansionen av variabelvärdet innan uttrycket parsas. Därför kan de två metoderna returnera olika resultat.

Hur namn tolkas

Ett namn inne i ett uttryck kan vara en referens till ett fält, en variabel, en funktion eller ett mått. Situationen avgör hur namnet tolkas.

Example:  

Strängen XXX representerar ett fält, en variabel, en funktion eller ett mått. XXX kommer att tolkas som någon av dessa, beroende på hur du skapar uttrycket.

Exempel på hur namn tolkas
Uttryck XXX tolkas som
XXX mått, variabel eller fält
$(XXX) variabel
Antal(XXX) fält eller variabel
XXX() funktion

Du ska inte använda samma namn för ett fält och en variabel (eller ett mått). Men om du gör det, och en oklarhet föreligger, används följande prioritetsordning:

  • Om namnet är placerat inuti en aggregeringsfunktion prioriteras ett fält före en variabel.

  • Om namnet är placerat utanför en aggregeringsfunktion prioriteras ett mått före en variabel, som i sin tur prioriteras före ett fält.

Regler för uttryck

Följande regler gäller för diagramuttryck:

  • Om en fältreferens inte omsluts av en aggregeringsfunktion använder motorn funktionen Only().

  • Alla uttryck returnerar ett tal och/eller en sträng, beroende på vad som är aktuellt.

  • Logiska funktioner och operatorer returnerar 0 för False, och -1 för True. Nummer-till-sträng-konverteringar och sträng-till-nummer-konverteringar är implicita.

  • Logiska operatorer och funktioner tolkar 0 som False och alla andra som True.

  • Uttryck som inte kan få en korrekt tolkning, exempelvis till följd av felaktiga parametrar eller funktioner, returnerar NULL.