Deli z drugimi prek


Ifin funkcije Switch

Velja za: Canvas apps Copilot Studio Desktop flows Dataverse formula columns Model-driven apps Power Platform CLI Dataverse functions Power Pages

Določa, ali je kateri koli pogoj v naboru resničen (If) ali pa se rezultat formule ujema s katero koli vrednostjo v naboru (Switch) in nato vrne rezultat ali izvede dejanje.

Opis

Funkcija If preskusi enega ali več pogojev, dokler ni najden resničen rezultat. If tak rezultat je najden, je vrnjena ustrezna vrednost. If ni mogoče najti takšnega rezultata, vrnjena je 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 z vrednostjo v zaporedju, ki ga določite. If najde zadetek, vrne ustrezno vrednost. If ni ujemanja, vrnjena je privzeta vrednost. V vsakem primeru je lahko vrnjena vrednost niz za prikaz, formula za ovrednotenje ali druga oblika rezultata.

If in Switch so zelo podobni, vendar morate uporabiti najboljšo funkcijo za vaš položaj:

  • Uporablja If se za ovrednotenje enega pogoja. Najpogostejša sintaksa za to funkcijo je If( Condition, ThenResult, DefaultResult ), ki zagotavlja pogosto »če ... potem … Else …" vzorec, viden v drugih programskih orodjih.
  • Uporablja se If za ovrednotenje več nepovezanih pogojev. V dodatku Power Apps (za razliko od Microsoft Excela) lahko določite več pogojev, ne da bi morali ugnezdeti If formule.
  • Uporablja Switch se za ovrednotenje enega pogoja glede na več možnih ujemanj. V tem primeru jo If lahko uporabite tudi, vendar 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.

Prazno je vrnjeno, če noben pogoj ni true, ni najdenih ujemanj in ne podate privzetega rezultata.

Sintaksa

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

  • Pogoji - Obvezno. Formule za preskus za true. Takšne formule pogosto vsebujejo operaterje za primerjavo (kot so <, > in =) ter funkcije preskusa, kot soIsBlank in IsEmpty.
  • ThenResults - Zahtevano. Pripadajoča vrednost za vrnitev za pogoj, ki je ovrednoten kot true.
  • Privzeti rezultat - Izbirno. Vrednost za vrnitev, če noben pogoj ni ovrednoten kot true. If ne navedete tega argumenta, je vrnjeno prazno.

Switch( Formula, Ujemanje1, Rezultat1 [, Ujemanje2, Rezultat2, ... [, PrivzetoResult ] ] )

  • Formula - obvezno. Formula za ovrednotenje ujemanj. Ta formula je ovrednotena samo enkrat.
  • Ujemanja - Obvezno. Vrednosti za primerjavo z rezultatom iz možnosti Formula. If je najden natančen rezultat, je vrnjen ustrezen rezultat.
  • Rezultati - Obvezno. Pripadajoča možnost za vrnitev, ko je najdeno točno ujemanje.
  • Privzeti rezultat - Izbirno. If natančnega ujemanja ni mogoče najti, ta vrednost je vrnjena. If ne navedete tega argumenta, je vrnjeno prazno.

Primeri

Vrednosti v formulah

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

Formula Opis 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. If Ime jeprazno, ta formula ne bi več učinkovla. res

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. res

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. res

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.