Funkcije If i Switch
Primjenjuje se na: Stupci Dataverse formule aplikacija radnog područja Tijekovi radne površine CLI aplikacija Power Pages Power Platform utemeljenih na modelu
Utvrđuje je li bilo koji uvjet u nekom skupu istinit (If) ili odgovara li rezultat formule bilo kojoj vrijednosti u nekom skupu (Switch), a zatim vraća rezultat ili izvršava radnju.
Opis
Funkcija If ispituje jedan ili više uvjeta dok ne pronađe rezultat true. Ako pronađe takav rezultat, vraća odgovarajuću vrijednost. Ako ne pronađe takav rezultat, vraća zadanu vrijednost. U oba slučaja, vraćena vrijednost može biti niz za prikazivanje, formula za procjenu ili neki drugi oblik rezultata.
Funkcija Switch procjenjuje neku formulu i utvrđuje odgovara li rezultat bilo kojoj vrijednosti u slijedu koji navedete. Ako pronađe podudarnost, vraća odgovarajuću vrijednost. Ako ne pronađe podudarnost, vraća zadanu vrijednost. U oba slučaja, vraćena vrijednost može biti niz za prikazivanje, formula za procjenu ili neki drugi oblik rezultata.
Ako su i Switch vrlo slični, ali trebali biste koristiti najbolju funkciju za svoju situaciju:
- Upotrijebite funkciju If da biste procijenili jedan uvjet. Najčešća sintaksa za ovu funkciju je If(Condition,ThenResult,DefaultResult ), koja pruža uobičajenu "ako ... tada … Inače ..." uzorak koji se vidi u drugim programskim alatima.
- Koristite If da biste procijenili više nepovezanih uvjeta. U aplikaciji Power Apps (za razliku od Microsoft Excel), možete navesti više uvjeta bez potrebe za gniježđenjem formula If.
- Upotrijebite funkciju Switch da biste procijenili jedan uvjet za više mogućih podudaranja. If možete koristiti i u ovom slučaju, ali morat ćete ponoviti formulu za svako moguće podudaranje.
Obje ove funkcije možete koristiti u formulama ponašanja kako bi se razdvojile dvije ili više radnji. Samo će jedna grana pokrenuti neku radnju. Uvjeti i i podudaranja procjenjuju se po redoslijedu, a prestaju ako je uvjet true ili se pronađe podudarnost.
Prazno se vraća ako nijedan uvjet nije istinit, nisu pronađena podudaranja i ako ne navedete zadani rezultat.
Sintaksa
If( Stanje,ThenResult [, DefaultResult ] )
If(Stanje1,ThenResult1 [, Uvjet2,ThenResult2 , ... [, DefaultResult ] ] )
- Uvjeti - Obavezno. Formule za koje se ispituje vrijednost true. Takve formule obično sadrže operatore usporedbe (kao što su <, > i =) i funkcije testa kao što su IsBlank i IsEmpty.
- ThenResults - Obavezno. Odgovarajuća vrijednost koju treba vratiti za neki uvjet koji da vrednost true.
- DefaultResult – neobavezno. Vrijednost koju treba vratiti ako nijedan uvjet ne da vrijednost true. Ako ne navedete ovaj argument, vraća se prazno.
Prekidač(Formula,Match1,Result1 [, Match2,Result2 , ... [, DefaultResult ] ] )
- Formula - Obavezno. Formula za procjenu podudaranja. Ova se formula procjenjuje samo jednom.
- Šibice - Obavezno. Vrijednosti za usporedbu s rezultatom iz Formula. Ako se pronađe točno podudaranje, vraća se odgovarajući Result.
- Rezultati - Obavezno. Vraća se odgovarajuća vrijednost ako se pronađe neko točno podudaranje.
- DefaultResult – neobavezno. Ako se točno podudaranje ne pronađe, vraća ovu vrijednost. Ako ne navedete ovaj argument, vraća se prazno.
Primjeri
Vrijednosti u formulama
U sljedećim primjerima, kontrola Slider (nazvana Slider1) ima vrijednost 25.
Formula | Opis | Rezultat |
---|---|---|
if( klizač1.vrijednost = 25, "rezultat1" ) | Uvjet daje true i vraća se odgovarajući rezultat. | „Result1” |
if( klizač1.vrijednost = 25, "rezultat1", "rezultat2" ) | Uvjet daje true i vraća se odgovarajući rezultat. | „Result1” |
if( klizač1.Vrijednost > 1000, "Rezultat1" ) | Uvjet daje false i nije bio pružen DefaultResult. | prazno |
if( klizač1.Vrijednost > 1000, "Rezultat1", "Rezultat2" ) | Uvjet daje false, bio je pružen DefaultResult, pa je vraćen. | „Result2” |
if( klizač1.vrijednost = 25, "rezultat1", klizač1.vrijednost > 0, "rezultat2" ) | Prvi uvjet daje true i vraća se odgovarajući rezultat. Drugi uvjet također daje true, ali ne procjenjuje se jer se na popisu argumenata pojavljuje kasnije nego uvjet koji se procjenjuje kao true. | „Result1” |
if( isBlank( slider1.Value ), "Result1", IsNumeric( slider1.Value ), "Result2" ) | Prvi uvjet daje false jer klizač nema vrijednost prazno. Drugi uvjet daje true jer je vrijednost klizača broj i vraća se odgovarajući rezultat. | „Result2” |
if( klizač1.vrijednost > 1000, "rezultat1", klizač1.vrijednost > 50, "rezultat2", "rezultat3") | I prvi i drugi uvjet daju false, bio je pružen DefaultResult, pa je vraćen. | „Result3” |
Prekidač( klizač1.Vrijednost, 25, "Rezultat1" ) | Vrijednost klizača odgovara prvoj vrijednosti koja se provjerava i vraća se odgovarajući rezultat. | „Result1” |
prekidač( klizač1.vrijednost, 20, "rezultat1", 25, "rezultat2", 30, "rezultat3" ) | Vrijednost klizača odgovara drugoj vrijednosti koja se provjerava i vraća se odgovarajući rezultat. | „Result2” |
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) | Vrijednost klizača ne odgovara nijednoj vrijednosti koju treba provjeriti. Bio je pružen DefaultResult, pa je vraćen. | „DefaultResult” |
Grananje u formulama ponašanja
U tim primjerima kontrola Text input nazvana FirstName ima unesenu vrijednost „John”.
Formula | Opis | Rezultat |
---|---|---|
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | Uvjet daje true, pa se pokreće funkcija Navigate. Možete koristiti funkciju IsBlank kako biste ispitali je li ispunjeno traženo polje obrasca. Ako bi FirstName bilo blank, ova formula ne bi imala učinka. | istinit Screen je promijenjen u Screen1. |
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | Bez operatora ! uvjet je false tako da se funkcija Navigiraj ne pokreće. Funkcija Back pružena je kao DefaultResult, pa se pokreće. | istinit Screen se vraća na prethodno prikazani zaslon. |
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) | Vrijednost FirstName.Text uspoređuje se s „Carlos”, „Kirstin” i „John” tim redoslijedom. Pronađeno je podudaranje s „John”, pa aplikacija prelazi na Screen3. | istinit Screen je promijenjen u Screen3. |
Korak po korak
Dodajte kontrolu Text input i nazovite je Text1 ako to već nije zadano ime.
U Text1 unesite 30.
Dodajte kontrolu Label i postavite njeno svojstvo Tekst na ovu formulu:
if( value(Text1.Text) < 20, "Naruči MNOGO više!", Value(Text1.Text) < 40, "Naruči više!", Text1.Text )Kontrola Label pokazuje Order more! jer vrijednost Text1 je više od 20, ali manje od 40.
U Text1 unesite 15.
Kontrola Label pokazuje Order MANY more! jer vrijednost Text1 je manje od 20.
U Text1 unesite 50.
Kontrola Label prikazuje vrijednost koju ste upisali jer je veća od 40.