Del via


If og Switch funktioner

Gælder for: Lærredsapps Copilot Studio Desktop flow Dataverse-formelkolonner Modeldrevne apps Power Platform CLI Dataverse-funktioner Power Pages

Bestemmer, om en betingelse i et sæt er true (If), eller om resultatet af en formel svarer til en værdi i et sæt (Switch) og derefter returnerer et resultat eller udfører en handling.

Beskrivelse

Funktionen If tester en eller flere betingelser, indtil der findes et sandt resultat. If et sådant resultat findes, returneres en tilsvarende værdi. If der ikke blev fundet et sådant resultat. Der returneres en standardværdi. I begge tilfælde kan den returnerede værdi være en streng, der skal vises, en formel, som skal evalueres, eller en anden form for resultat.

Funktionen Switch evaluerer en formel og bestemmer, om resultatet stemmer overens med en værdi i en sekvens, du angiver. If der blev fundet et match, returneres en tilsvarende værdi. If der ikke blev fundet et match, returneres en standardværdi. I begge tilfælde kan den returnerede værdi være en streng, der skal vises, en formel, som skal evalueres, eller en anden form for resultat.

If og Switch er meget ens, men du skal bruge den bedste funktion til din situation:

  • Bruges If til at evaluere en enkelt betingelse. Den mest almindelige syntaks for denne funktion er If( Condition, ThenResult, DefaultResult ), som leverer den fælles "if ... derpå... else ...."-mønster, der ses i andre programmeringsværktøjer.
  • Bruges If til at evaluere flere ikke-relaterede betingelser. I Power Apps (i modsætning til Microsoft Excel) kan du angive flere betingelser uden at skulle indlejre If formler.
  • Bruges Switch til at evaluere en enkelt betingelse i forhold til flere mulige match. Du kan også bruge If i dette tilfælde, men du skal gentage formlen for hvert af de mulige match.

Du kan bruge begge disse funktioner i formler for funktionsmåde til at skifte mellem to eller flere handlinger. Det er kun én gren, der udløser en handling. Betingelser og matches evalueres i rækkefølge, og de stopper, hvis en betingelse er sand, eller der findes et match.

Tom returneres, hvis der ikke er nogen betingelser, der ikke findesnogen matches, og du ikke angiver et standardresultat.

Syntaks

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

  • Betingelser - Påkrævet. Formler til test af sand. Disse formler indeholder typisk operatorer til sammenligning (f.eks. <, > and =) og testfunktioner såsom IsBlank og IsEmpty.
  • DerefterResultater - Påkrævet. Den tilsvarende værdi, der skal returneres for en betingelse, som evalueres til sand.
  • DefaultResult – valgfrit. Den værdi, der skal returneres, hvis ingen betingelser evalueres til sand. If du ikke angiver dette argument, returneres blank .

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

  • Formel - Påkrævet. Formel, der skal evalueres for matches. Denne formel evalueres kun én gang.
  • Kampe - Påkrævet. Værdier, der skal sammenlignes med resultatet fra Formel. If der blev fundet et nøjagtigt match, returneres det tilsvarende Resultat .
  • Resultater - Påkrævet. Den tilsvarende værdi, som skal returneres, når der findes et præcist match.
  • DefaultResult – valgfrit. If et nøjagtigt match ikke blev fundet. Denne værdi returneres. If du ikke angiver dette argument, returneres blank .

Eksempler

Værdier i formler

I følgende eksempler har et Slider-kontrolelement (med navnet Slider1) en værdi på 25.

Formel Beskrivelse Resultat
If( Slider1.Value = 25, "Result1") Betingelsen er sand, og det tilsvarende resultat returneres. "Result1"
If( Slider1.Value = 25, "Result1", "Result2") Betingelsen er sand, og det tilsvarende resultat returneres. "Result1"
If( Slider1.Value > 1000, "Result1") Betingelsen er falsk, og der er ikke angivet noget DefaultResult. hvid
If( Slider1.Value > 1000, "Result1", "Result2") Betingelsen er falsk, DefaultResult er angivet, og det er returneret. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2") Den første betingelse er sand, og det tilsvarende resultat returneres. Den anden betingelse er også sand, men den evalueres ikke, da den vises senere på argumentlisten end en betingelse, der evalueres som sand. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Den første betingelse er falsk, da skyderen ikke er tom. Den anden betingelse er sand, da skyderens værdi er et tal, og det tilsvarende resultat returneres. "Result2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") Både den første og anden betingelse er falsk, DefaultResult blev angivet, og det returneres. "Result3"
Switch( Slider1.Value, 25, "Result1") Skyderens værdi matcher den første værdi, der skal kontrolleres, og det tilsvarende resultat returneres. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3") Skyderens værdi matcher den anden værdi, der skal kontrolleres, og det tilsvarende resultat returneres. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult") Skyderens værdi matcher ikke en af de værdier, der skal kontrolleres. DefaultResult blev angivet og returneres. "DefaultResult"

Forgrening i formler for funktionsmåde

I disse eksempler indeholder et Text input-kontrolelement med navnet FirstName værdien "John".

Formel Beskrivelse Resultat
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) Betingelsen er sand, så funktionen Navigate køres. Du kan bruge funktionen IsBlank til at teste, om et påkrævet formularfelt er udfyldt. If FirstName var tom. Denne formel ville ikke have nogen effekt. sand

Visningen er ændret til Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Uden !-operatøren er betingelsen falsk, og dermed køres funktionen Navigate ikke. Funktionen Back blev angivet som DefaultResult og køres derfor. sand

Der vendes tilbage til den skærm, der tidligere blev vist.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) Værdien for FirstName.Text sammenlignes med "Carlos", "Kirstin" og "John" i nævnte rækkefølge. Der blev fundet et match med "John", og derfor navigerer appen til Screen3. sand

Skærmen ændres til Screen3.

Trin for trin

  1. Tilføj et Text input-kontrolelement, og navngiv det Text1, hvis det ikke allerede har dette navn som standard.

  2. Skriv 30 i Text1.

  3. Tilføj et kontrolelement af typen Label, og angiv dets egenskab Tekst til denne formel:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Kontrolelementet Etiket viser Bestil flere!, fordi værdien for Text1 er større end 20, men mindre end 40.

  4. Skriv 15 i Text1.

    Kontrolelementet Etiket viser Bestil MANGE flere!, fordi værdien for Text1 er mindre end 20.

  5. Skriv 50 i Text1.

    Kontrolelementet Labelviser den værdi, du har skrevet, da den er større end 40.