Formler
Formler används på flera ställen i konfiguratorn och det gemensamma är att de använder variabler för att utföra beräkningar. Formlerna används i princip på två sätt, för att:
- beräkna värden
- utvärdera om ett villkor är sant eller falskt.
De olika formler som går att skapa styrs av de olika typer av variabler som finns och som är Text, Tal, Boolesk och Datum. De olika typer av formler som finns är:
- Tidsformler – används på operationer för att beräkna styck och ställtider.
- Kvantitetsformler – används för att beräkna kvantitet och inställningskvantitet på material.
- Prisformler – används för att beräkna priser på ingående artiklar och kan även användas för flexibel prissättning av huvudartiklar (de som konfigureras).
- Variabelformler – används på variabler för att beräkna värden på variabler.
- Instruktionsformler – används för att beräkna värden som ska visas i en instruktion.
- Regelformler – används i regler när du vill göra villkor som använder variabler. Dessa formler ger alltid resultatet "sant" eller "falskt".
Formlerna skapar du i en formeleditor på de poster där formler kan skapas. Formeleditorn finns under knappen Formel . När det redan finns en formel sparad visas en annan symbol
på knappen.
Formlerna byggs upp som logiska och matematiska uttryck av tillgängliga variabler, operatorer, villkor och funktioner. Under kolumnen Använd (gånger) visas hur många gånger en variabel använts i en formel.
För alla olika typer av formler (utom variabelformler och regelformler) lägger du till en eller flera konfigurationsgrupp i formeleditorn (för att få fram tillgängliga variabler) och väljer/lägger till ett formelnummer för varje konfigurationsgrupp. Du kan lägga till fler formelnummer och skapa olika formler på dessa i formeleditorn. Samma formelnummer kan du också välja att använda för flera konfigurationsgrupper.
Det görs olika valideringar i formeleditorn. Exempelvis görs valideringar att resultatet av formeln är av rätt typ, t.ex. tal eller text. Det görs valideringar att angivna variabler finns, t.ex. om en formel kopieras från en materialrad till en annan materialrad och att konfigurationsgrupp är vald i formeleditorn. Om det finns valideringsfel visas med röd text vad som är felaktigt, du kan då inte spara formeln med knappen OK i formeleditorn förrän du rättat till felet.

För en tidsformel eller kvantitetsformel på operation respektive material i en beredning kan du välja en av tre olika formelfunktioner, som beaktas vid orderläggning. Det är att multiplicera, addera eller ersätta ordinarie värde av stycktid/ställtid respektive kvantitet/inställningskvantitet med formelns resultat. Du gör detta val längst upp till vänster i formeleditorn.
För en prisformel på en artikel i artikelregistret är formelfunktionen alltid att multiplicera ordinarie värde på artikelns pris med formelns resultat. Du kan inte ändra på den funktionen i formeleditorn.
För en variabelformel på en variabel är formelfunktionen alltid att ge variabeln värdet från formelns resultat.
För en regelformel i en regeldefinition är formelfunktionen alltid att ge värdet "sant" eller "falskt" från formelns resultat.
För en instruktionsformel i en konfigurerad instruktion är formelfunktionen alltid att ge värdet från formelns resultat.

För att det ska gå snabbt att skriva formler, och för att du inte ska skriva variabelkoder felaktigt, finns det i formeleditorn något som kallas "IntelliSense", som ger dig förslag på variabler och funktioner allteftersom du skriver i formeleditorn.
För att få upp förslag på variabler i formeleditorn anger du vänster hakparentes [ med tangenterna Alt Gr + 8, och då visas en lista med de variabler som finns i den valda konfigurationsgruppen.
Variabler ska skrivas inom hakparenteser [ ] i denna formeleditor. Variablerna är också skiftlägeskänsliga. En variabelkod som heter "Bredd" är inte samma som en variabelkod som heter "bredd".
Detta är två skillnader mot hur variabler skrivs i formeleditorn i rutinen Planeringsformler. Där skrivs variabler utan hakparenteser och alltid med versaler.
Över fältet Resultat visar en tooltip de variabelvärden som används vid test av formeln.
Om du anger en bokstav i formeleditorn får du upp förslag på alla funktioner som börjar på den bokstaven. T.ex. anger du ett "s" får du upp en lista med förslag på de funktioner som börjar på den bokstaven.
Du väljer variabel eller funktion med piltangenterna och trycker Enter för att infoga den i formeln. Alternativt så dubbelklickar du på raden för att infoga. Till höger i listan visas en beskrivning av den markerade variabeln eller funktionen.
Med kommandot Ctrl + mellanslag får du upp alla tillgängliga variabler och alla funktioner.

Namn | Beskrivning | Syntax | Resultat |
---|---|---|---|
Abs | Returnerar det absoluta värdet av ett angivet tal. |
Abs(-1) | 1M |
Acos | Returnerar vinkeln vars cosinus är det angivna talet. |
Acos(1) | 0d |
Asin | Returnerar vinkeln vars sinus är det angivna talet. |
Asin(0) | 0d |
Atan | Returnerar vinkeln vars tangens är det angivna talet. |
Atan(0) | 0d |
Ceiling | Returnerar det minsta heltal som är större än eller lika med det angivna talet. |
Ceiling(1.5) | 2d |
Cos | Returnerar cosinus för den angivna vinkeln. |
Cos(0) | 1d |
Deg | Returnerar grader för en vinkel som är angiven i radianer. | Deg(0) | Deg(Pi()) = 80 |
Exp | Returnerar [ e ] upphöjt till angiven potens. |
Exp(0) | 1d |
Floor | Returnerar det största heltal som är mindre än eller lika med det angivna talet. |
Floor(1.5) | 1d |
IEEERemainder | Returnerar resten som är resultatet av divisionen av ett angivet tal med ett annat angivet tal. |
IEEERemainder(3, 2) | -1d |
Log | Returnerar logaritmen för ett angivet tal. |
Log(1, 10) | 0d |
Log10 | Returnerar basen 10 logaritmen för ett angivet tal. |
Log10(1) | 0d |
Max | Returnerar det största av två angivna tal. |
Max(1, 2) | 2 |
Min | Returnerar det minsta av två tal. |
Min(1, 2) | 1 |
Pi | Returnerar värdet av Pi med 14 decimaler. | Pi() | 3,14159265358979 |
Pow | Returnerar ett specificerat tal upphöjt till angiven potens. |
Pow(3, 2) | 9d |
Rad | Returnerar radianer för en vinkel som är angiven i grader. | Rad(0) | Rad(180/Pi()) = 1 |
Round | Avrundar ett värde till närmaste heltal eller angivet antal decimaler. Mellantalets beteende kan ändras genom att använda EvaluateOption.RoundAwayFromZero under bygget av Expression objektet. |
Round(3.222, 2) | 3.22d |
Sign | Returnerar ett värde som anger tecknet för ett tal. |
Sign(-10) | -1 |
Sin | Returnerar sinus för den angivna vinkeln. |
Sin(0) | 0d |
Sqrt | Returnerar kvadratroten av ett angivet tal. |
Sqrt(4) | 2d |
Tan | Returnerar tangens för den angivna vinkeln. |
Tan(0) | 0d |
Truncate | Beräknar den integrerade delen av ett tal. |
Truncate(1.7) | 1 |
in | Returnerar om ett element ingår i en uppsättning värden. |
in(1 + 1, 1, 2, 3) | true |
if | Returnerar ett värde baserat på ett villkor. |
if(3 % 2 = 1, 'value is true', 'value is false') | 'value is true' |
För trigonometriska funktioner (som cosinus, sinus och tangens) anges vinkeln alltid i radianer. Om du t.ex. har en variabel v som anges i grader och ska beräkna cosinus för variabeln, blir formeln Cos(Rad(v)).
Värden i variabler av typen Text skrivs inom apostrofer, t.ex. Blå skrivs som 'Blå'. Värden i variabler av typen Datum skrivs inom nummertecken (även kallade brädgård eller hashmark), t.ex. 2018-11-14 skrivs som #2018-11-14#.
Förutom variabler och funktioner kan du använda nedanstående operatorer och villkor i formler. För operatorer och villkor får du inte upp några förslag, utan de får anges manuellt i formeln.

Operatorer | Villkor |
---|---|
+ - * / % ( ) |
< > = <> if(condition, true, false) and or not |

I konfigurerade instruktioner (knappen KI) på operationer och material i beredningar samt på val i valgrupper, kan du även lägga in variabler och formler med dra-och-släpp. Där markerar du den önskade variabeln i variabeltabellen eller formeln i formeltabellen och drar in den med muspekaren till den plats i instruktionen där du vill ha den.
Variabler och formler kan även anges manuellt inom hakparenteser i konfigurerade instruktioner. En variabel skrivs som [v:variabelkod]. En formel skrivs som [f:formelnamn]. Notera att det ska vara ett inledande "v:" respektive "f:" inom hakparenteserna. En validering görs att en variabel respektive formel finns tillgänglig när du anger dem manuellt.