Deli putem


Funkcije "If and Switch"

Važi za: Canvas aplikacije formula columns Dataverse Desktop flows Model-driven apps Power Pages Power Platform CLI

Određuje da li je bilo koji uslov u skupu tačan (If) ili rezultat formule odgovara bilo kojoj vrednosti u skupu (Switch), a zatim vraća rezultat ili izvršava radnju.

Opis

Funkcija If testira jedan ili više uslova dok rezultat tačno nije pronađen. Ako se pronađe takav rezultat, vraća se odgovarajuća vrednost. Ako se ne pronađe takav rezultat, vraća se podrazumevana vrednost. U oba slučaja, vraćena vrednost može biti niska koju treba prikazati, formula koju treba izračunati ili drugi oblik rezultata.

Funkcija Switch izračunava formulu i određuje da li se rezultat podudara s bilo kojom vrednošću u niski koju navedete. Ako se pronađe podudaranje, vraća se odgovarajuća vrednost. Ako se ne pronađe podudaranje, vraća se podrazumevana vrednost. U oba slučaja, vraćena vrednost može biti niska koju treba prikazati, formula koju treba izračunati ili drugi oblik rezultata.

If i Switch su vrlo slične, ali trebalo bi da koristite najbolju funkciju za svoju situaciju:

  • Koristite If da izračunate jedan uslov. Najčešća sintaksa za ovu funkciju je If(Condition,ThenResult,DefaultResult ), koja obezbeđuje uobičajeno "ako ... then … Inače ..." šablon viđen u drugim programskim alatima.
  • Koristite If za izračunavanje više nepovezanih uslova. U Power Apps (za razliku od Microsoft Excel), možete odrediti više uslova bez da ugnezdite formule If.
  • Koristite Switch da izračunate jedan uslov prema više mogućih podudaranja. Takođe možete da koristite If u ovom slučaju, ali morate da ponovite formulu za svako moguće podudaranje.

Obe funkcije možete koristiti u formulama ponašanja, da biste se granali između dve ili više radnji. Samo jedno grananje će pokrenuti radnju. Uslovi i podudaranja se izračunavaju po redosledu, a prestaju ako je uslov tačan ili je pronađeno podudaranje.

Prazno se vraća ako nema uslova true, nema podudaranja i ne navodite podrazumevani rezultat.

Sintaksa

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

  • Condition(s) – Obavezno. Formule za testiranje da li je neka vrednost tačno. Takve formule obično sadrže poređenje operatora (kao što su <, > i =) i test funkcije kao što su IsBlank i IsEmpty.
  • ThenResult(s) – Obavezno. Odgovarajuća vrednost koja se vraća za uslov koji se izračunava kao tačno.
  • DefaultResult – Opcionalno. Vrednost koju treba vratiti ako se nijedan uslov ne bude izračuna kao tačno. Ako ne navedete ovaj argument, prazno je vraćeno.

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

  • Formula – Obavezno. Formula za izračunavanje podudaranja. Ova formula se izračunava samo jednom.
  • Match(s) – Obavezno. Vrednosti za upoređivanje sa rezultatom iz funkcije Formula. Ako se pronađe tačno podudaranje, vraća se odgovarajući rezultat.
  • Result(s) – Obavezno. Odgovarajuća vrednost za vraćanje kada se pronađe tačno podudaranje.
  • DefaultResult – Opcionalno. Ako tačno podudaranje nije pronađeno, vraća se ova vrednost. Ako ne navedete ovaj argument, prazno je vraćeno.

Primeri

Vrednosti u formulama

U sledećim primerima, kontrola Klizač (nazvana Slider1) ima vrednost 25.

Formula Opis rezultat
If( Slider1.Value = 25, "Result1" ) Uslov je tačan i odgovarajući rezultat se vraća. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Uslov je tačan i odgovarajući rezultat se vraća. "Result1"
If( Slider1.Value>1000, "Result1" ) Uslov je netačan, a ni jedan DefaultResult nije obezbeđen. prazno
If( Slider1.Value>1000, "Result1", "Result2" ) Uslov je netačan, obezbeđuje se i vraća DefaultResult. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Prvi uslov je tačan i vraća se odgovarajući rezultat. Drugi uslov je takođe tačan, ali se ne izračunava zato što se kasnije pojavljuje na listi argumenata koju uslov na kraju izračunava kao tačno. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Prvi uslov je netačan jer klizač nije prazan. Drugi uslov je tačan jer je vrednost klizača broj, a vraća se odgovarajući rezultat. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") I prvi i drugi uslov je netačan, a obezbeđuje se i vraća DefaultResult. "Result3"
Switch( Slider1.Value, 25, "Result1" ) Vrednost klizača odgovara prvoj vrednosti koja se proverava, a vraća se odgovarajući rezultat. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Vrednost klizača odgovara drugoj vrednosti koja se proverava, a vraća se odgovarajući rezultat. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Vrednost klizača ne odgovara nijednoj vrednosti koja se proverava. DefaultResult je obezbeđen i vraća se. "DefaultResult"

Razgranavanje u formulama ponašanja

U ovim primerima, kontrola Unos teksta nazvana FirstName ima vrednost "John" koja je upisana u nju.

Formula Opis Rezultat
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Uslov je tačan, pa funkcija Navigate radi. Možete koristiti funkciju IsBlank za testiranje da li je ispunjeno traženo polje obrasca. Ako je FirstName prazno, ova formula ne bi imala efekta. tačno

Ekran je promenjen u Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Bez operatera !, uslov je false, pa se funkcija Navigate ne pokreće. Funkcija Back je data kao DefaultResult, tako da radi. tačno

Ekran se vraća na prethodno prikazani ekran.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) Vrednost FirstName.Text se upoređuje sa „Carlos“, „Kirstin“ i „John“, tim redosledom. Nalazi se podudarnost sa „John“, tako da Aplikacija vodi do Screen3. tačno

Prikaz se menja u Screen3.

Korak po korak

  1. Dodajte kontrolu Unos teksta i nazovite je Text1 ako podrazumevano nema taj naziv.

  2. U Text1, unesite 30.

  3. Dodajte kontrolu Label i podesite njeno svojstvo Tekst prema ovoj formuli:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Kontrola Label prikazuje Naručite više! zato što je vrednost Text1 veća od 20, ali manja od 40.

  4. U Text1, unesite 15.

    Kontrola Label prikazuje Naručite MNOGO više! zato što je vrednost Text1 manja od 20.

  5. U Text1, unesite 50.

    Kontrola Oznaka prikazuje vrednost koju ste uneli jer je veća od 40.