Partajați prin


If și Switch funcții

Se aplică la: Aplicațiile Pânză Copilot Studio Desktop fluxurilor de dateVerse coloane de formule Model aplicații bazate pe platforma Power Platform CLI Dataverse funcții Power Pages

Determină dacă orice condiție dintr-un set este adevărată (If) sau rezultatul unei formule se potrivește cu orice valoare dintr-un set (Switch), apoi returnează un rezultat sau execută o acțiune.

Descriere

Funcția If testează una sau mai multe condiții până când se găsește un rezultat adevărat . If se găsește un astfel de rezultat, se returnează o valoare corespunzătoare. If nu s-a găsit un astfel de rezultat, se returnează o valoare implicită. În ambele cazuri, valoarea returnată ar putea fi o șir de afișat, o formulă de evaluat sau un alt formular al rezultatului.

Funcția Switch evaluează o formulă și determină dacă rezultatul se potrivește cu orice valoare dintr-o secvență specificată. If se găsește o potrivire, se returnează o valoare corespunzătoare. If nu s-a găsit nicio potrivire, se returnează o valoare implicită. În ambele cazuri, valoarea returnată ar putea fi o șir de afișat, o formulă de evaluat sau un alt formular al rezultatului.

If și Switch sunt foarte asemănătoare, dar ar trebui să utilizați cea mai bună funcție pentru situația dvs.:

  • Se utilizează If pentru a evalua o singură condiție. Sintaxa cea mai comună pentru această funcție este If( Condiție, ThenResult, DefaultResult ), care furnizează "dacă ... apoi... else..." model văzut în alte instrumente de programare.
  • Se utilizează If pentru a evalua mai multe condiții necorelate. În Power Apps (spre deosebire de Microsoft Excel), puteți specifica mai multe condiții fără a fi necesar să imbricați If formule.
  • Se utilizează Switch pentru a evalua o singură condiție față de mai multe potriviri posibile. De asemenea, puteți utiliza If în acest caz, dar ar trebui să repetați formula pentru fiecare potrivire posibilă.

Puteți utiliza ambele funcții în formule comportamentale pentru a se ramifica între două sau mai multe acțiuni. O singură ramură va declanșa o acțiune. Condițiile și corespondențele sunt evaluate în ordine și se opresc dacă o condiție este if sau este găsită o potrivire.

Numărul se returnează dacă nu sunt condiții adevărate, nu sunt găsite potriviri și nu specificați un rezultat implicit.

Sintaxă

If( Condiție, ThenResult [, DefaultResult ] )
If( Condiție1, ThenResult1 [, Condiție2, ThenResult2, ... [ , DefaultResult ] ] )

  • Condiții - Obligatoriu. Formule pentru a testa true. Aceste formule conțin în mod obișnuit operatori de comparație (precum <, > și =) și funcții de testare, cum ar fi IsBlank și IsEmpty.
  • ThenResults - Obligatoriu. Valoarea corespunzătoare returnată pentru o condiție care se evaluează la true.
  • DefaultResult - Opțional. Valoarea de returnat dacă nu se evaluează nicio condiție true. If nu specificați acest argument, se returnează necompletat .

Switch( Formulă, Potrivire1, Rezultat1 [, Potrivire2, Rezultat2, ... [, DefaultResult ] )

  • Formula - Obligatoriu. Formulă de evaluat pentru corespondențe. Această formulă este evaluată o singură dată.
  • Potriviri - Obligatoriu. Valori de comparat cu rezultatul din Formula. If se găsește o potrivire exactă, se returnează rezultatul corespunzător.
  • Rezultate - Obligatoriu. Valoarea corespunzătoare de returnat când se găsește o potrivire exactă.
  • DefaultResult - Opțional. If nu s-a găsit o potrivire exactă, această valoare este returnată. If nu specificați acest argument, se returnează necompletat .

Exemple

Valori în formule

În următoarele exemple, un control Slider (numit Glisor1) are o valoare de 25.

Formula Descriere Rezultat
If( Glisor1.Valoare = 25, "Rezultat1" ) Condiția este true, iar rezultatul corespunzător este returnat. "Result1"
If( Glisor1.Valoare = 25, "Rezultat1", "Rezultat2" ) Condiția este true, iar rezultatul corespunzător este returnat. "Result1"
If( Glisor1.Valoare > 1000, "Rezultat1" ) Condiția este false și nu este furnizat niciun DefaultResult. necompletat
If( Glisor1.Valoare > 1000, "Rezultat1", "Rezultat2" ) Condiția este false, un DefaultResult este furnizat și este returnat. "Result2"
If( Glisor1.Valoare = 25, "Rezultat1", Glisor1.Valoare > 0, "Rezultat2" ) Prima condiție este true, iar rezultatul corespunzător este returnat. A doua condiție este și ea true, dar nu este evaluată deoarece apare în lista de argumente mai târziu decât o condiție care se evaluează la true. "Result1"
If( IsBlank( Glisor1.Valoare ), "Rezultat1", IsNumeric( Glisor1.Valoare ), "Rezultat2" ) Prima condiție este false deoarece glisorul nu este necompletat. A doua condiție este true deoarece valoarea glisorului este un număr, iar rezultatul corespunzător este returnat. "Result2"
If( Glisor1.Valoare > 1000, "Rezultat1", Glisor1.Valoare > 50, "Rezultat2", "Rezultat3") Și prima și a doua condiție sunt false, un DefaultResult este furnizat și este returnat. "Result3"
Switch( Glisor1.Valoare, 25, "Rezultat1" ) Valoarea glisorului se potrivește cu prima valoare verificată, iar rezultatul corespunzător este returnat. "Result1"
Switch( Glisor1.Valoare, 20, "Rezultat1", 25, "Rezultat2", 30, "Rezultat3" ) Valoarea glisorului se potrivește cu a doua valoare verificată, iar rezultatul corespunzător este returnat. "Result2"
Switch( Glisor1.Valoare, 20, "Rezultat1", 10, "Rezultat2", 0, "Rezultat3", "DefaultResult" ) Valoarea glisorului nu se potrivește cu nicio valoare care trebuie verificată. A fost furnizat DefaultResult, deci este returnat. "DefaultResult"

Ramificarea în formule comportamentale

În aceste exemple, un control Intrare text numit FirstName are valoarea "Ioan" introdusă.

Formula Descriere Rezultat
If( ! IsBlank( Prenume.Text ), Navigare( Ecran1, ScreenTransition.None ) Condiția este true, prin urmare funcția Navigate rulează. Puteți utiliza funcția IsBlank pentru a testa dacă un câmp de formular obligatoriu a fost completat. If FirstName au fost necompletate, această formulă nu ar avea niciun efect. adevărat

Ecranul este schimbat în Screen1.
If( IsBlank( Prenume.Text ), Navigare( Ecran1, ScreenTransition.None ), Back() ) Fără operatorul !, condiția este false, prin urmare funcția Navigare nu rulează. Funcția Back a fost furnizată ca DefaultResult, deci rulează. adevărat

Afișajul revine la ecranul care a fost arătat anterior.
Switch( FirstName.Text, "Carlos", Navigare( Ecran1, ScreenTransition.None ), "Kirstin", Navigare( Ecran2, ScreenTransition.None ), "John", Navigare( Ecran3, ScreenTransition.None ) Valoarea FirstName.Text este comparată cu "Călin", "Cristina" și "Ioan" în această ordine. Se găsește o potrivire cu "Ioan", astfel încât aplicația navighează la Screen3. adevărat

Ecranul este schimbat în Screen3.

Pas cu pas

  1. Adăugați un control Text input și numiți-l Text1 dacă nu are acest nume în mod implicit.

  2. În Text1, introduceți 30.

  3. Adăugați un control Label și setați proprietatea Text la această formulă:
    If( Valoare(Text1.Text) < 20, "Ordonare MAI MULTE!", Valoare(Text1.Text) < 40, "Ordonare mai mult!", Text1.Text )

    Controlul Etichetă afișează Comandă mai mult! deoarece valoarea Text1 este mai mult de 20, dar mai mic de 40.

  4. În Text1, introduceți 15.

    Controlul Etichetă afișează Comandă MAI mult! deoarece valoarea Text1 este mai mic de 20.

  5. În Text1, introduceți 50.

    Controlul Label arată valoarea pe care ați tastat-o deoarece este mai mare de 40.