Share via


Funkcija If i Switch

Odnosi se na: Stupci formule aplikacija Dataverse od gotovih gradivnih elemenata Tokovi radne površine CLI aplikacije stvorene prema Power Platform 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.

Funkcije If i Switch vrlo su slične, ali trebali biste koristiti funkciju koja najviše odgovara situaciji:

  • 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 ne da true, ne pronađu se podudaranja i ne odredite zadani rezultat.

Sintaksa

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

  • Condition(s) – 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.
  • ThenResult(s) – 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.

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

  • Formula – obavezno. Formula za procjenu podudaranja. Ova se formula procjenjuje samo jednom.
  • Match(s) – obavezno. Vrijednosti za usporedbu s rezultatom iz Formula. Ako se pronađe točno podudaranje, vraća se odgovarajući Result.
  • Result(s) – 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( Slider1.Value = 25, "Result1" ) Uvjet daje true i vraća se odgovarajući rezultat. „Result1”
If( Slider1.Value = 25, "Result1", "Result2" ) Uvjet daje true i vraća se odgovarajući rezultat. „Result1”
If( Slider1.Value>1000, "Result1" ) Uvjet daje false i nije bio pružen DefaultResult. prazno
If( Slider1.Value>1000, "Result1", "Result2" ) Uvjet daje false, bio je pružen DefaultResult, pa je vraćen. „Result2”
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) 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( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") I prvi i drugi uvjet daju false, bio je pružen DefaultResult, pa je vraćen. „Result3”
Switch( Slider1.Value, 25, "Result1" ) Vrijednost klizača odgovara prvoj vrijednosti koja se provjerava i vraća se odgovarajući rezultat. „Result1”
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) 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. true

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

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

Screen je promijenjen u Screen3.

Korak po korak

  1. Dodajte kontrolu Text input i nazovite je Text1 ako to već nije zadano ime.

  2. U Text1 unesite 30.

  3. Dodajte kontrolu Label i postavite njeno svojstvo Tekst na ovu formulu:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Kontrola Label pokazuje Order more! jer vrijednost Text1 je više od 20, ali manje od 40.

  4. U Text1 unesite 15.

    Kontrola Label pokazuje Order MANY more! jer vrijednost Text1 je manje od 20.

  5. U Text1 unesite 50.

    Kontrola Label prikazuje vrijednost koju ste upisali jer je veća od 40.