Megosztás:


If és Switch függvények

A következőkre vonatkozik: Vászonalapú alkalmazások Copilot Studio Desktop folyamatok Dataverse képletoszlopok Modellalapú alkalmazások Power Platform CLI Dataverse-függvények Power Pages

Meghatározza, hogy egy halmaz bármely feltétele igaz (If) vagy egy képlet eredménye megfelel-e a készlet (Switch) bármely értékének, majd visszaad egy eredményt, vagy végrehajt egy műveletet.

Ismertetés

A If függvény egy vagy több feltételt tesztel, amíg valódi eredményt nem talál. If ilyen eredmény található, a rendszer egy megfelelő értéket ad vissza. If nem található ilyen eredmény, a rendszer egy alapértelmezett értéket ad vissza. A visszaadott érték mindkét esetben lehet egy megjelenítendő sztring, egy kiértékelendő képlet vagy egyéb formájú eredmény.

A Switch függvény kiértékel egy képletet, és meghatározza, hogy az eredmény megfelel-e a megadott sorozat bármely értékének. If a rendszer egyezést talál, egy megfelelő értéket ad vissza. If nem található egyezés, a rendszer egy alapértelmezett értéket ad vissza. A visszaadott érték mindkét esetben lehet egy megjelenítendő sztring, egy kiértékelendő képlet vagy egyéb formájú eredmény.

If és Switch nagyon hasonlóak, de a helyzethez a legjobb függvényt kell használnia:

  • Egyetlen feltétel kiértékelésére használható If . A függvény Ifleggyakoribb szintaxisa a ( Condition, ThenResult, DefaultResult ), amely a közös "ha ... akkor... Más ..." más programozási eszközökben látható minta.
  • Több egymástól független feltétel kiértékelésére használható If . A Power Appsben (a Microsoft Exceltől eltérően) több feltételt is megadhat képletek beágyazása If nélkül.
  • Egyetlen Switch feltétel kiértékelése több lehetséges egyezéssel. Ebben az esetben is használhatja If , de minden lehetséges egyezéshez meg kell ismételnie a képletet.

Mindkét függvényt használhatja viselkedési képletekben két vagy több művelet közötti elágaztatáshoz. Csak egy ág vált ki műveletet. A feltételek és egyezések kiértékelése sorrendben történik, és leáll, ha egy feltétel igaz értékű, vagy ha a rendszer egyezést talál.

A rendszer üres értéket ad vissza, ha egyik feltétel sem igaz, nem található egyezés, és nem ad meg alapértelmezett eredményt.

Szintaxis

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

  • Feltételek - Kötelező. A igaz érték tesztelésére szolgáló képlet(ek). Ezek a képletek gyakran tartalmaznak összehasonlító operátorokat (például <, > vagy =) és tesztelési függvényeket, például IsBlank vagy IsEmpty.
  • ThenResults - Kötelező. A feltétel igaz értékkel történő kiértékelése esetén visszaadandó megfelelő érték.
  • DefaultResult – Nem kötelező. A visszatérési érték, ha nincs igaz feltétel. If nem adja meg ezt az argumentumot, a függvény üres értéket ad vissza.

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

  • Képlet - kötelező. Az egyezések kiértékeléséhez használandó képlet. A képlet csak egyszer lesz kiértékelve.
  • Egyezések – kötelező. A képlet által visszaadott eredménnyel összehasonlítandó értékek. If a rendszer pontos egyezést talál, a megfelelő eredményt adja vissza.
  • Eredmények - Kötelező. A megfelelő visszatérési érték, amikor a rendszer pontos egyezést talál.
  • DefaultResult – Nem kötelező. If pontos egyezés nem található, ez az érték lesz visszaadva. If nem adja meg ezt az argumentumot, a függvény üres értéket ad vissza.

Példák

Értékek a képletekben

A következő példákban egy Csúszka vezérlő (a Slider1) értéke 25.

Képlet Ismertetés Result
If( Slider1.Value = 25, "Result1" ) A feltétel igaz, és a függvény az ennek megfelelő eredményt adja vissza. "Eredmény1"
If( Slider1.Value = 25, "Result1", "Result2" ) A feltétel igaz, és a függvény az ennek megfelelő eredményt adja vissza. "Eredmény1"
If( Slider1.Value > 1000, "Result1" ) A feltétel hamis, és nem lett megadva AlapértelmezettEredmény. üres
If( Slider1.Value > 1000, "Result1", "Result2" ) A feltétel hamis, az AlapértelmezettEredmény meg lett adva, és a rendszer vissza is adta. "Eredmény2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Az első feltétel igaz, és a függvény ennek megfelelő eredményt ad vissza. A második feltétel is igaz, de a rendszer nem értékeli ki, mert az argumentumlistában később szerepel, mint egy feltétel igaz kiértékelésű feltétel. "Eredmény1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Az első feltétel hamis mert a csúszka nem üres. A második feltétel igaz, mert a csúszka értéke szám, és a rendszer ennek megfelelő eredményt ad vissza. "Eredmény2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") Az első és második feltétel hamis, meg lett adva AlapértelmezettEredmény lett megadva, és a rendszer ezt adja vissza. "Eredmény3"
Switch( Slider1.Value, 25, "Result1" ) A csúszka értéke megegyezik az első ellenőrizendő értékkel, és a rendszer ennek megfelelő eredményt ad vissza. "Eredmény1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) A csúszka értéke megegyezik a második ellenőrizendő értékkel, és a rendszer ennek megfelelő eredményt ad vissza. "Eredmény2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) A csúszka értéke nem egyezik egy ellenőrizendő értékkel sem. Az AlapértelmezettEredmény meg lett adva, ezért a rendszer ezt adja vissza. "AlapértelmezettEredmény"

Elágazás viselkedési képletekben

Ezekben a példákban a Keresztnév nevű szövegbeviteli vezérlőelembe beírt érték „János”.

Képlet Ismertetés Result
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) A feltétel igaz, ezért lefut a Navigate függvény. Használhatja az IsBlank függvényt annak megállapítására, hogy a kötelező űrlapmező ki van-e töltve. If A FirstNameüres volt, ennek a képletnek nincs hatása. igaz

A megjelenítés a Screen1 képernyőre vált.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) A ! operátor nélkül a feltétel hamis, így a Navigate függvény nem fut le. A Back függvény lett megadva mint AlapértelmezettEredmény, így ez a függvény lefut. igaz

A megjelenítés visszatér arra képernyőre, amely korábban volt látható.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) A Keresztnév.Text értékét a rendszer összehasonlítja a „Károly”, a „Krisztina” és a „János” értékkel, ebben a sorrendben. A program egyezést talált a „János” értékkel, így az alkalmazás a Screen3 képernyőre navigál. igaz

A megjelenítés a Screen3 képernyőre vált.

Lépésről lépésre

  1. Adjon hozzá egy Szövegbevitel vezérlőelemet, és névként adja meg a Text1 nevet (nem ez a neve alapértelmezés szerint).

  2. A Text1 vezérlőben írja be az 30 értéket.

  3. Adjon hozzá egy Label vezérlőelemet, és a Szöveg tulajdonságát állítsa a következő képletre:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    A Címke vezérlő a Többet rendelni! szöveget jeleníti meg, mivel a Szöveg1 értéke nagyobb mint 20, de kisebb mint 40.

  4. A Text1 vezérlőben írja be a 15 értéket.

    A Címke vezérlő a SOKKAL többet rendelni! szöveget jeleníti meg, mivel a Szöveg1 értéke kisebb mint 20.

  5. A Text1 vezérlőben írja be a 50 értéket.

    A Címke vezérlő a beírt értéket jeleníti meg, mert az nagyobb, mint 40.