De functies If en Switch

Van toepassing op: Canvas-apps Dataverse-formulekolommen Bureaubladstromen Modelgestuurde apps Power Platform CLI

Hiermee wordt bepaald of een voorwaarde in een set true is (If) of dat het resultaat van een formule overeenkomt met een willekeurige waarde in een set (Switch). Vervolgens wordt een resultaat geretourneerd of een actie uitgevoerd.

Beschrijving

De functie If test één of meer voorwaarden totdat een true resultaat is gevonden. Als een dergelijk resultaat wordt gevonden, wordt er een overeenkomende waarde geretourneerd. Als een dergelijk resultaat niet wordt gevonden, wordt er een standaardwaarde geretourneerd. In beide gevallen kan de geretourneerde waarde een tekenreeks die u kunt weergeven, een formule die u kunt evalueren of een ander soort resultaat zijn.

De functie Switch evalueert een formule en bepaalt of het resultaat overeenkomt met een waarde in een volgorde die u opgeeft. Als er een overeenkomst wordt gevonden, wordt er een overeenkomende waarde geretourneerd. Als er geen overeenkomst wordt gevonden, wordt er een standaardwaarde geretourneerd. In beide gevallen kan de geretourneerde waarde een tekenreeks die u kunt weergeven, een formule die u kunt evalueren of een ander soort resultaat zijn.

If en Switch zijn vergelijkbaar, maar het is raadzaam om de aanbevolen functie te gebruiken voor uw situatie:

  • Gebruik If om één voorwaarde evalueren. De meest voorkomende syntaxis voor deze functie is If( Condition, ThenResult, DefaultResult ). Dit resulteert in het veelvoorkomende patroon "if ... dan: … else ..." ook in andere programmeertools voorkomt.
  • Gebruik If om meerdere niet-gerelateerde voorwaarden te evalueren. In Power Apps kunt u (in tegenstelling tot Microsoft Excel) meerdere voorwaarden opgeven zonder If-formules te moeten nesten.
  • Gebruik Switch om één voorwaarde te evalueren ten opzichte van meerdere mogelijke overeenkomsten. U kunt in dit geval ook If gebruiken, maar dan moet u de formule herhalen voor elke mogelijke overeenkomst.

U kunt beide functies gebruiken in gedragsformules om vertakkingen te maken tussen twee of meer acties. Slechts één vertakking activeert een actie. Voorwaarden en overeenkomsten worden op volgorde geëvalueerd en het proces wordt gestopt als een voorwaarde true is of er een overeenkomst is gevonden.

Blank wordt geretourneerd als geen voorwaarden true zijn, er geen overeenkomsten zijn gevonden en u geen standaardresultaat opgeeft.

Syntaxis

If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Condition(s): vereist. Formule(s) om te controleren op true. Deze formules bevatten gewoonlijk vergelijkings-operators (zoals <, > en =) en testfuncties zoals IsBlank en IsEmpty.
  • ThenResult(s): vereist. De overeenkomstige waarde die voor een voorwaarde moet worden geretourneerd en die wordt beoordeeld als true.
  • DefaultResult: optioneel. De waarde die moet worden geretourneerd als geen voorwaarden true is. Als u dit argument niet opgeeft, wordt blank geretourneerd.

Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Formula: vereist. De formule die moet worden geëvalueerd op overeenkomsten. Deze formule wordt slechts één keer geëvalueerd.
  • Match(s): vereist. Waarden die moeten worden vergeleken met het resultaat van Formula. Als een exacte overeenkomst wordt gevonden, wordt het bijbehorende Result geretourneerd.
  • Result(s): vereist. De overeenkomstige waarde die moet worden geretourneerd wanneer er een exacte overeenkomst is gevonden.
  • DefaultResult: optioneel. Als er geen exacte overeenkomst wordt gevonden, wordt deze waarde geretourneerd. Als u dit argument niet opgeeft, wordt blank geretourneerd.

Voorbeelden

Waarden in formules

In de volgende voorbeelden heeft een besturingselement van het type Slider met de naam Slider1 de waarde 25.

Formule Omschrijving Result
If( Slider1.Value = 25, "Result1" ) De voorwaarde is true en het bijbehorende resultaat wordt geretourneerd. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) De voorwaarde is true en het bijbehorende resultaat wordt geretourneerd. "Result1"
If( Slider1.Value>1000, "Result1" ) De voorwaarde is false en er is geen DefaultResult opgegeven. leeg
If( Slider1.Value>1000, "Result1", "Result2" ) De voorwaarde is false, er is een DefaultResult opgegeven en deze wordt geretourneerd. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) De eerste voorwaarde is true en het bijbehorende resultaat wordt geretourneerd. De tweede voorwaarde is ook true, maar deze wordt niet geëvalueerd omdat deze later in de lijst met argumenten staat dan een voorwaarde die wordt geëvalueerd als true. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) De eerste voorwaarde is false omdat de schuifregelaar niet leeg is. De tweede voorwaarde is true omdat de waarde van de schuifregelaar een getal is; het bijbehorende resultaat wordt geretourneerd. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") Zowel de eerste als de tweede voorwaarde is false en DefaultResult is opgegeven en geretourneerd. "Result3"
Switch( Slider1.Value, 25, "Result1" ) De waarde van de schuifregelaar komt overeen met de eerste waarde die moet worden gecontroleerd en het bijbehorende resultaat wordt geretourneerd. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) De waarde van de schuifregelaar komt overeen met de tweede waarde die moet worden gecontroleerd en het bijbehorende resultaat wordt geretourneerd. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) De waarde van de schuifregelaar komt niet overeen met een van de waarden die worden gecontroleerd. Een DefaultResult is opgegeven, dus deze wordt geretourneerd. "DefaultResult"

Vertakkingen in gedragsformules

In deze voorbeelden is in een besturingselement van het type Text input met de naam FirstName de waarde 'John' getypt.

Formule Beschrijving Resultaat
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) De voorwaarde is true dus de functie Navigate wordt uitgevoerd. U kunt de functie IsBlank gebruiken om te testen of een verplicht formulierveld is ingevuld. Als Voornaamleeg was, zou deze formule geen effect hebben. true

De weergave wordt gewijzigd in Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Zonder de operator !is de voorwaarde false, dus wordt de functie Navigate niet uitgevoerd. De functie Back is opgegeven als een DefaultResult, dus deze wordt uitgevoerd. true

De weergave gaat terug naar het scherm dat eerder werd weergegeven.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) De waarde van FirstName.Text wordt vergeleken met 'Carlos', 'Kirstin' en 'John', in die volgorde. Er is een overeenkomst gevonden met 'John', dus de app navigeert naar Screen3. true

De weergave wordt gewijzigd naar Screen3.

Stapsgewijs

  1. Voeg een besturingselement van het type Text input toe en noem het Text1 als het die naam niet standaard al heeft.

  2. Typ in Text130.

  3. Voeg een besturingselement van het type Label toe en stel de eigenschap Text in op deze formule:
    If( Value(Text1.Text) < 20, "Bestel VEEL meer!", Value(Text1.Text) < 40, "Bestel meer!", Text1.Text )

    Het besturingselement Label toont Bestel meer! omdat de waarde van Text1 meer is dan 20 maar minder dan 40.

  4. Typ in Text115.

    Het besturingselement Label toont Bestel VEEL meer! omdat de waarde van Text1 minder is dan 20.

  5. Typ in Text150.

    Het besturingselement Label geeft de waarde weer die u hebt getypt, omdat deze hoger is dan 40.