Returnerar ett värde om villkoret är sant och ett annat värde om samma villkor är falskt.

Beskrivning

Funktionen If testar villkor tills ett true-resultat hittas. Motsvarande värde returneras sedan som ett resultat. Du kan använda If för att returnera olika resultat baserat på jämförelser och andra tester.

Du kan använda If i beteendeformler för att förgrena mellan två åtgärder. Som mest görs en förgrening. Villkoren utvärderas i ordning och när ett true-resultat hittas, kontrolleras inga ytterligare villkor.

Om inga villkor uppfylls och ett udda antal argument har angetts, returneras värdet för det sista argumentet. Detta är fallet med If( Condition, Value, Else ). Om ett jämnt antal argument har angetts, returneras Blank.

Syntax

If( Condition, Result [, ElseResult ] )
If( Condition1, Result1 [, Condition2, Result2, ... [ , ElseResult ] ] )

  • Condition(s) – Krävs. Formler för att testa true. Dessa formler innehåller vanligen jämförelseoperatorer (exempelvis <, > och =) och testfunktioner som t.ex. IsBlank och IsEmpty.
  • Result(s) – Krävs. Motsvarande värde som ska returneras för ett villkor som utvärderas till true.
  • ElseResult – Valfritt. Värdet som returneras om inga villkor är uppfyllda. Om du inte anger det här argumentet returneras ett tomt värde.

Exempel

Värden i formler

I följande exempel har ett skjutreglage med namnet Slider1 värdet 25.

Formel Beskrivning Resultat
If( Slider1.Value = 25, "Result1" ) Villkoret är true och motsvarande resultat returneras. "Result1"
If( Slider1.Value > 1000, "Result1" ) Villkoret är false och inget ElseResult har angetts. blank
If( Slider1.Value = 25, "Result1", "Result2" ) Villkoret är true och motsvarande resultat returneras. "Result1"
If( Slider1.Value > 1000, "Result1", "Result2" ) Villkoret är false och ett ElseResult har angetts och returneras. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Det första villkoret är true och motsvarande resultat returneras. Det andra villkoret är också true men dess motsvarande värde returneras inte, eftersom det ligger efter det första villkoret i argumentlistan. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Det första villkoret är false eftersom skjutreglaget har värdet 25 och inte är tomt. Det andra villkoret är true eftersom skjutreglagets värde är ett tal och motsvarande resultat returneras. "Result2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") Både det första och det andra villkoret är false. ElseResult har angetts och returneras. "Result3"

Förgrening i beteendeformler

I följande exempel har en indatatextruta med namnet FirstName och värdet "John".

Formel Beskrivning Resultat
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Villkoret är true och funktionen Navigate körs. Du kan använda funktionen IsBlank för att testa om ett obligatoriskt formulärfält har fyllts i. Om textrutan var tom skulle den här formeln inte ge något resultat. true

Visningen ändras till Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Utan operatorn . är villkoret false och funktionen Navigate körs inte. Eftersom ElseResult har angetts körs funktionen Back. true

Visningen går tillbaka till skärmen som visades tidigare.

Steg för steg

  1. På en tom skärm lägger du till en indatatextruta och ger den namnet Text1, om den inte redan har det namnet som standard.

  2. I Text1 skriver du 15.

  3. Lägg till en etikett och ange egenskapen Text till följande formler:

Formel Beskrivning Resultat
Text1.Text Utan villkor är returvärdet värdet från indata-/textkontrollen. "15"
If( Value(Text1.Text) < 40, "Order more!", Text1.Text ) Villkoret är true och motsvarande värde returneras. "Order more!"
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text ) Det första villkoret är true och motsvarande värde returneras. "Order MANY more!"