Share via


Funkciji If in Preklopi

Velja za: Stolpci s formulo aplikacij Dataverse delovnega območja Tokovi namizja Aplikacije Power Platform , ki temeljijo na modelu CLI

Določi, ali je kateri koli pogoj v naboru »true« (If) ali se rezultat formule ujema s katero koli vrednostjo v naboru (Switch), nato pa vrne rezultat ali izvede dejanje.

Opis

Funkcija If preskusi enega ali več pogojev, dokler ni najden rezultat true. Če je tak rezultat najden, je vrnjena ustrezna vrednost. Če tak rezultat ni najden, je vrnjena privzeta vrednost. V vsakem primeru je lahko vrnjena vrednost niz za prikaz, formula za ovrednotenje ali druga oblika rezultata.

Funkcija Switch ovrednoti formulo in določi, ali se rezultat ujema s katero koli vrednostjo v zaporedju, ki ga navedete. Če je ujemanje najdeno, je vrnjena ustrezna vrednost. Če ujemanje ni najdeno, je vrnjena privzeta vrednost. V vsakem primeru je lahko vrnjena vrednost niz za prikaz, formula za ovrednotenje ali druga oblika rezultata.

Funkciji If in Switch sta si zelo podobni, toda uporabiti bi morali najboljšo funkcijo za svojo situacijo:

  • Uporabite If za ovrednotenje enega pogoja. Najpogostejša sintaksa za to funkcijo je If(Condition,ThenResult,DefaultResult ), ki zagotavlja pogosto »če ... potem … Sicer ..." vzorec, viden v drugih orodjih za programiranje.
  • Uporabite If za ovrednotenje več nepovezanih pogojev. V storitvi Power Apps (za razliko do storitve Microsoft Excel) lahko navedete več pogojev brez potrebe po ugnezdenju formul If.
  • Uporabite Switch za ovrednotenje enega pogoja glede na več možnih ujemanj. V tem primeru lahko uporabite tudi If, toda morate ponoviti formulo za vsako morebitno ujemanje.

V formulah vedenja lahko uporabite obe ti funkciji za razvejitev med dvema ali več dejanji. Samo ena veja bo sprožila dejanje. Pogoji in ujemanja so ocenjeni v zaporedju in se ustavijo, če je pogoj true ali je najdeno ujemanje.

Vrnjeno je prazno, če noben od pogojev ni true, ni najdenih nobenih ujemanj in niste navedli privzetega rezultata.

Sintaksa

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

  • Condition(s) – obvezno. Formule za preskus za true. Takšne formule pogosto vsebujejo operaterje za primerjavo (kot so <, > in =) ter funkcije preskusa, kot soIsBlank in IsEmpty.
  • ThenResult(s) – obvezno. Pripadajoča vrednost za vrnitev za pogoj, ki je ovrednoten kot true.
  • DefaultResult – izbirno. Vrednost za vrnitev, če noben pogoj ni ovrednoten kot true. Če ne navedete tega argumenta, je vrnjeno prazno.

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

  • Formula – obvezno. Formula za ovrednotenje ujemanj. Ta formula je ovrednotena samo enkrat.
  • Match(s) – obvezno. Vrednosti za primerjavo z rezultatom iz možnosti Formula. Če je najdeno točno ujemanje, je vrnjena pripadajoča možnost Result.
  • Result(s) – obvezno. Pripadajoča možnost za vrnitev, ko je najdeno točno ujemanje.
  • DefaultResult – izbirno. Če točno ujemanje ni najdeno, je vrnjena ta vrednost. Če ne navedete tega argumenta, je vrnjeno prazno.

Primeri

Vrednosti v formulah

V naslednjih primerih ima kontrolnik Slider (imenovan Slider1) vrednost 25.

Formula Description Rezultat
If( Slider1.Value = 25, "Result1" ) Pogoj je true in vrnjen je pripadajoč rezultat. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Pogoj je true in vrnjen je pripadajoč rezultat. "Result1"
If( Slider1.Value>1000, "Result1" ) Pogoj je false in možnost DefaultResult ni bila zagotovljena. prazno
If( Slider1.Value>1000, "Result1", "Result2" ) Pogoj je false, možnost DefaultResult je bila zagotovljena in je vrnjena. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Prvi pogoj je true in vrnjen je pripadajoč rezultat. Drugi pogoj je prav tako true, toda ni ovrednoten, ker se pojavi pozneje v seznamu argumentov kot pogoj, ki je ovrednoten kot true. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Prvi pogoj je false, ker drsnik ni prazno. Drugi pogoj je true, ker je vrednost drsnika številka in je vrnjen pripadajoči rezultat. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") Prvi in drugi pogoj sta false, možnost DefaultResult je bila zagotovljena in je vrnjena. "Result3"
Switch( Slider1.Value, 25, "Result1" ) Vrednost drsnika se ujema s prvo vrednostjo za preverjanje in pripadajoč rezultat je vrnjen. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Vrednost drsnika se ujema z drugo vrednostjo, ki jo je treba preveriti, in pripadajoč rezultat je vrnjen. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Vrednost drsnika se ne ujema z nobeno vrednostjo, ki jo je treba preveriti. Možnost DefaultResult je bila zagotovljena, tako da je vrnjena. "DefaultResult"

Razvejevanje v formulah vedenja

V teh primerih ima kontrolnik Text input, imenovan FirstName, vneseno vrednost »John«.

Formula Opis Rezultat
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Pogoj je true, torej se izvaja funkcija Navigate. Uporabite lahko funkcijo IsBlank, da preverite, ali je bilo obvezno polje obrazca izpolnjeno. Če bi bila možnost FirstName enaka blank, ta formula ne bi imela učinka. true

Prikaz je spremenjen na Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Brez operatorja ! je pogoj false, zato se funkcija Navigate ne izvede. Funkcija Back je bila zagotovljena kot DefaultResult, zato se izvede. true

Prikaz se vrne predhodno prikazan zaslon.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) Vrednost za FirstName.Text se primerja s »Carlos«, »Kirstin« in »John« v tem vrstnem redu. Najdeno je ujemanje z »John«, zato se aplikacija pomakne na Screen3. true

Prikaz je spremenjen na Screen3.

Korak za korakom

  1. Dodajte kontrolnik Text input in ga poimenujte Text1, če privzeto nima imena.

  2. V Text1 vnesite 30.

  3. Dodajte kontrolnik Label in nastavite njegovo lastnost Besedilo na to formulo:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Kontrolnik Oznaka kaže Naroči več!, ker je vrednost Text1 več kot 20, vendar manj kot 40.

  4. V Text1 vnesite 15.

    Kontrolnik Oznaka kaže Naroči VELIKO več!, ker je vrednost Text1 manj kot 20.

  5. V Text1 vnesite 50.

    Kontrolnik Label prikazuje vrednost, ki ste jo vnesli, ker je več kot 40.