Funkcijas If un Switch

Attiecas uz: Pamatnes programmu Dataverse formulu kolonnām Darbvirsmas plūsmas Modeļa vadītas programmas Power Platform CLI

Nosaka, vai kādas kopas nosacījumi ir patiesi (If) vai formulas rezultāts atbilst jebkurai vērtībai kopā (Switch), un pēc tam atgriež rezultātu vai izpilda darbību.

Apraksts

Funkcija If pārbauda vienu vai vairākus nosacījumus, līdz tiek atrasts rezultāts true. Ja šāds rezultāts tiek atrasts, tiek atgriezta atbilstošā vērtība. Ja šāds rezultāts netiek atrasts, tiek atgriezta noklusējuma vērtība. Jebkurā gadījumā atgrieztā vērtība varētu būt rādāmā virkne, vērtējamā formula vai cita veida rezultāts.

Funkcija Switch novērtē formulu un nosaka, vai rezultāts atbilst jebkurai jūsu norādītās secības vērtībai. Ja ir atrasta atbilstība, tiek atgriezta atbilstošā vērtība. Ja nav atrasta atbilstība, tiek atgriezta noklusējuma vērtība. Jebkurā gadījumā atgrieztā vērtība varētu būt rādāmā virkne, vērtējamā formula vai cita veida rezultāts.

Funkcijas If un Switch ir ļoti līdzīgas, taču katrā situācijā vajadzētu izvēlēties labāko.

  • Izmantojiet If, lai novērtētu atsevišķu nosacījumu. Visizplatītākā šīs funkcijas sintakse ir If(Nosacījums,TadRezultāts,DefaultResult ), kas nodrošina kopējo "ja ... tad ... Vēl ..." modelis, kas redzams citos programmēšanas rīkos.
  • Izmantojiet Ja, lai novērtētu vairākus nesaistītos nosacījumus. Programmā Power Apps (atšķirībā no Microsoft Excel) varat norādīt vairākus nosacījumus, bez vajadzības ligzdot If formulas.
  • Izmantojiet funkciju Switch, lai novērtētu atsevišķu nosacījumu iepretim vairākām iespējamām atbilstībām. Šajā gadījumā var izmantot arī If, taču jums būs jāatkārto formula katrai iespējamajai atbilstībai.

Varat izmantot abas šīs funkcijas uzvedības formulās, lai tās sadalītu starp divām vai vairākām darbībām. Darbību uzsāks tikai viens atzars. Nosacījumi un atbilstības tiek novērtētas secīgi, un tās aptur, ja nosacījums ir true vai ja ir atrasta atbilstība.

Tukša tiek atgriezta, ja nav patiesu nosacījumu, nav atrastas atbilstības un neesat norādījis noklusējuma rezultātu.

Sintakse

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

  • Nosacījums(-i) – Obligāti. Formula(s), kurām pārbaudīt true. Šādas formulas parasti satur salīdzinājuma operatorus (piemēram, <, > un =) un testa funkcijas, piemēram, IsBlank un IsEmpty.
  • ThenResults — Obligāti. Atbilstošā vērtība, ko atgriezt nosacījumam, kas tiek novērtēts kā true.
  • DefaultResult — Neobligāti. Atgriežamā vērtība, ja neviens nosacījums netiek novērtēts kā true. Ja nekonkretizējat šo argumentu, tiek atgriezta vērtība tukšs.

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

  • Formula — Obligāti. Formula, kuru izvērtēt atbilstībām. Šī formula tiek novērtēta tikai vienreiz.
  • Atbilstība(-s) — Obligāti. Vērtības, ar kurām salīdzināt rezultātu no Formula. Ja ir atrasta precīza atbilstība, tiek atgriezts atbilstošais Rezultāts.
  • Rezultāts(-i) — Obligāti. Atbilstošā vērtība, kuru atgriezt, ja ir atrasta precīza atbilstība.
  • DefaultResult — Neobligāti. Ja nav atrasta precīza atbilstība, vērtība tiek atgriezta. Ja nekonkretizējat šo argumentu, tiek atgriezta vērtība tukšs.

Piemēri

Vērtības formulās

Tālāk parādītajos piemēros vadīklas Slīdnis (ar nosaukumu Slider1) vērtība ir 25.

Formula Apraksts Rezultāts
If( Slider1.Value = 25, "Result1" ) Nosacījums ir true, un tiek atgriezts atbilstošais rezultāts. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Nosacījums ir true, un tiek atgriezts atbilstošais rezultāts. "Result1"
If( Slider1.Value>1000, "Result1" ) Nosacījums ir false un netiek nodrošināts DefaultResult. tukšs
If( Slider1.Value>1000, "Result1", "Result2" ) Nosacījums ir false tiek nodrošināts DefaultResult, un tas tiek atgriezts. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Pirmais nosacījums ir true, un tiek atgriezts atbilstošais rezultāts. Arī otrs nosacījums ir true, taču tas netiek vērtēts, jo tas parādās vēlāk argumentu sarakstā, nekā nosacījums, kas tiek novērtēts ar true. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Pirmais nosacījums ir false, jo slīdnis nav tukšs. Otrais nosacījums ir true, jo slīdņa vērtība ir skaitlis, un tiek atgriezts atbilstošais rezultāts. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") Gan pirmais, gan otrais nosacījums ir false, tiek nodrošināts DefaultResult, un tas tiek atgriezts. "Result3"
Switch( Slider1.Value, 25, "Result1" ) Slīdņa vērtība atbilst pirmajai pārbaudāmajai vērtībai, un tiek atgriezts atbilstošais rezultāts. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Slīdņa vērtība atbilst otrajai pārbaudāmajai vērtībai, un tiek atgriezts atbilstošais rezultāts. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Slīdņa vērtība neatbilst nevienai pārbaudāmajai vērtībai. Tiek nodrošināts DefaultResult, tāpēc to atgrieza. "DefaultResult"

Zarošanās uzvedības formulās

Šajos piemēros Text input vadīklai ar nosaukumu FirstName ir ierakstīta vērtība "John".

Formula Apraksts Rezultāts
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Nosacījums ir true, tāpēc funkcija Navigate tiek palaista. Varat izmantot funkciju IsBlank, lai pārbaudītu, vai nepieciešamais veidlapas lauks ir aizpildīts. Ja FirstName būtu blank, šai formulai nebūtu nekādas ietekmes. true

Displejs tiek nomainīts uz Screen1
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Bez ! operatora, nosacījums ir aplams, tāpēc funkcija Navigate netiek palaista. Back funkcija tika nodrošināta kā DefaultResult, tāpēc tā tiek palaista. true

Displejs atgriežas ekrānā, kas tika rādīts iepriekš.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) FirstName.Text vērtība tiek salīdzināta ar "Carlos", "Kirstin" un "John" šajā secībā. Ir atrasta atbilstība ar "John", tāpēc programma pāriet uz Screen3. true

Displejs tiek nomainīts uz Screen3

Pakāpeniskas darbības

  1. Pievienojiet Text input vadīklu un nosauciet to par Text1, ja tai pēc noklusējuma nav šāda nosaukuma.

  2. Laukā Text1 ievadiet 30.

  3. Pievienojiet vadīklu Etiķete un iestatiet tās rekvizītu Text uz šo formulu:
    If( Value(Text1.Text) < 20, "Pasūtiet DAUDZ vairāk!", Value(Text1.Text) < 40, "Pasūtiet vairāk!", Text1.Text )

    Vadīkla Etiķete rāda Order more!, jo Text1 vērtība ir vairāk nekā 20, bet mazāk nekā 40.

  4. Laukā Text1 ievadiet 15.

    Vadīkla Etiķete rāda Order MANY more!, jo Text1 vērtība ir mazāk nekā 20.

  5. Laukā Text1 ievadiet 50.

    Etiķetes vadīklā tiek parādīta jūsu ierakstītā vērtība, jo tā ir lielāka par 40.