Funksjonene If og Switch

Gjelder: Lerretsapper Dataverse-formelkolonner Skrivebordsflyt Modelldrevne apper Power Platform CLI

Bestemmer om eventuelle betingelser i et sett er sant (If) eller om resultatet av en formel samsvarer med en verdi i et sett (Switch) og returnerer deretter et resultat eller utfører en handling.

Beskrivelse

Funksjonen If tester én eller flere betingelser inntil et sann-resultat blir funnet. Hvis et slikt resultat blir funnet, returneres en tilsvarende verdi. Hvis ingen slike resultater blir funnet, returneres en standardverdi. I begge tilfeller kan den returnerte verdien være en streng for å vise, en formel for å evaluere eller en annen form for resultat.

Switch-funksjonen evaluerer en formel og bestemmer om resultatet samsvarer med en verdi i en rekkefølge som du angir. Hvis et treff finnes, returneres en tilsvarende verdi. Hvis det ikke finnes noen treff, returneres en standardverdi. I begge tilfeller kan den returnerte verdien være en streng for å vise, en formel for å evaluere eller en annen form for resultat.

If og Switch er svært like, men du bør bruke funksjonen som passer situasjonen din best:

  • Bruk If til å evaluere en enkel betingelse. Den vanligste syntaksen for denne funksjonen er If( Condition, ThenResult, DefaultResult ), som gir det vanlige «hvis ... deretter … ellers ...» mønsteret som brukes i andre programmeringsverktøy.
  • Bruk If til å evaluere flere ikke-relaterte betingelser. Du kan angi flere betingelser i Power Apps (i motsetning til Microsoft Excel) uten å måtte neste If-formler.
  • Bruk Switch til å evaluere en enkel betingelse mot flere mulige treff. Du kan også bruke If i dette tilfellet, men du må gjenta formelen for hvert mulige treff.

Du kan bruke begge disse funksjonene i formler for virkemåte til å forgrene mellom to eller flere handlinger. Bare én gren utløser en handling. Betingelser og treff evalueres i rekkefølge, og de stopper hvis en betingelse er sann eller finner et treff.

Blank returneres hvis ingen betingelser er sann, ingen treff finnes og du ikke angir et standardresultat.

Syntaks

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

  • Condition(s) – obligatorisk. Formelen(e) til å teste for sann. Slike formler inneholder vanligvis sammenlignende operatorer (for eksempel <, > og =) og tester funksjoner som IsBlank og IsEmpty.
  • ThenResult(s) - obligatorisk. Den tilsvarende verdien skal returneres for en betingelse som evalueres til sann.
  • DefaultResult - valgfritt. Verdien som skal returneres hvis ingen betingelser evalueres til sann. Hvis du ikke angir dette argumentet, returneres tom.

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

  • Formula – obligatorisk. Formelen som skal evalueres for treff. Denne formelen er evaluert bare én gang.
  • Match(s) - obligatorisk. Verdier som skal sammenlignes med resultatet fra formelen. Hvis et nøyaktig treff blir funnet, returneres det tilhørende resultatet.
  • Result(s) - obligatorisk. Den tilsvarende verdien skal returneres når det er funnet et nøyaktig treff.
  • DefaultResult - valgfritt. Hvis det ikke blir funnet et nøyaktig treff, returneres verdien. Hvis du ikke angir dette argumentet, returneres tom.

Eksempler

Verdier i formler

I eksemplene nedenfor har en Slider-kontroll (kalt Slider1) en verdi på 25.

Formel Bekrivelse Result
If( Slider1.Value = 25, "Result1" ) Betingelsen er sann, og det tilsvarende resultatet returneres. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Betingelsen er sann, og det tilsvarende resultatet returneres. "Result1"
If( Slider1.Value>1000, "Result1" ) Betingelsen er usann, og ingen DefaultResult ble angitt. tom
If( Slider1.Value>1000, "Result1", "Result2" ) Betingelsen er usann, et DefaultResult ble angitt, og det returneres. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Den første betingelsen er sann, og det tilsvarende resultatet returneres. Den andre betingelsen er også sann, men den evalueres ikke fordi den vises i argumentlisten senere enn en betingelse som evalueres til sann. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Den første betingelsen er usann fordi glidebryteren ikke er tom. Den andre betingelsen er sann fordi verdien til glidebryteren er et tall, og det tilsvarende resultatet returneres. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") Både første og andre betingelse er usann, DefaultResult ble angitt, og den returneres. "Result3"
Switch( Slider1.Value, 25, "Result1" ) Verdien til glidebryteren samsvarer med den første verdien som skal kontrolleres, og det tilsvarende resultatet returneres. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Verdien til glidebryteren samsvarer med den andre verdien som skal kontrolleres, og det tilsvarende resultatet returneres. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Verdien til glidebryteren samsvarer ikke med en verdi som skal kontrolleres. DefaultResult ble angitt, slik at det returneres. "DefaultResult"

Forgrening i formler for virkemåte

I disse eksemplene har en Text input-kontroll kalt FirstName verdien «John» skrevet inn i den.

Formel Beskrivelse Resultat
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Betingelsen er sann, slik at Navigate-funksjonen kjører. Du kan bruke IsBlank-funksjonen til å teste om et obligatorisk skjemafelt er fylt ut. Hvis FirstName var blank, vil ikke denne formelen ha noen innvirkning. true

Visningen er endret til Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Uten !-operatoren, er betingelsen usann, slik at Navigate-funksjonen ikke kjøres. Back-funksjonen ble angitt som DefaultResult, slik at den kjører. true

Visningen går tilbake til skjermbildet som tidligere ble vist.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) Verdien for FirstName.Text sammenlignes mot «Carlos», «Kirstin» og «John» i den rekkefølgen. Appen finner et treff med «John», og går til Screen3. true

Visningen er endret til Screen3.

Trinnvis

  1. Legg til en Text input-kontroll, og gi den navnet Text1 hvis den ikke har det navnet som standard.

  2. Skriv 30 i Text1.

  3. Legg til en Label-kontroll, og sett Text-egenskapen til denne formelen:
    If( Value(Text1.Text) < 20, "Bestill mye mer!", Value(Text1.Text) < 40, "Bestill mer!", Text1.Text )

    Etikett-kontrollen viser Bestill mer!, fordi verdien av Tekst1 er mer enn 20, men mindre enn 40.

  4. Skriv 15 i Text1.

    Etikett-kontrollen viser Bestill mye mer!, fordi verdien av Tekst1 er mer enn 20, men mindre enn 20.

  5. Skriv 50 i Text1.

    Label-kontrollen viser verdien som du skrev inn fordi den er mer enn 40.