Funkcijas If un Switch
Attiecas uz: Audekla programmu Dataverse formulu kolonnām Darbvirsmas plūsmas Modeļa vadītas programmas Power Pages 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.
Ja un Switch ir ļoti līdzīgi, bet jums vajadzētu izmantot vislabāko funkciju jūsu situācijai:
- 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šs tiek atgriezts, ja neviens nosacījums nav patiess, nav atrastas atbilstības un nav norādīts noklusējuma rezultāts.
Sintakse
If( Nosacījums,TadRezultāts [ , DefaultResult ] )
Ja(Nosacījums1,TadRezultāts1 [, Stāvoklis2,TadRezultāts2 , ... [, DefaultResult ] ] )
- Nosacījumi - Nepieciešams. 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.
- TadRezultāti - Nepieciešams. Atbilstošā vērtība, ko atgriezt nosacījumam, kas tiek novērtēts kā true.
- DefaultResult - neobligāts. 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 - Nepieciešams. Formula, kuru izvērtēt atbilstībām. Šī formula tiek novērtēta tikai vienreiz.
- Sērkociņi - Nepieciešams. 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āti - obligāti. Atbilstošā vērtība, kuru atgriezt, ja ir atrasta precīza atbilstība.
- DefaultResult - neobligāts. 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( slīdnis1.vērtība = 25, "rezultāts1" ) | Nosacījums ir true, un tiek atgriezts atbilstošais rezultāts. | "Result1" |
if( slīdnis1.vērtība = 25, "rezultāts1", "rezultāts2" ) | Nosacījums ir true, un tiek atgriezts atbilstošais rezultāts. | "Result1" |
if( slīdnis1.vērtība > 1000, "rezultāts1" ) | Nosacījums ir false un netiek nodrošināts DefaultResult. | Tukša |
if( slīdnis1.vērtība > 1000, "rezultāts1", "rezultāts2" ) | 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( slīdnis1.vērtība > 1000, "rezultāts1", slīdnis1.vērtība > 50, "rezultāts2", "rezultāts3") | Gan pirmais, gan otrais nosacījums ir false, tiek nodrošināts DefaultResult, un tas tiek atgriezts. | "Result3" |
Slēdzis( slīdnis1.Vērtība, 25, "Rezultāts1" ) | Slīdņa vērtība atbilst pirmajai pārbaudāmajai vērtībai, un tiek atgriezts atbilstošais rezultāts. | "Result1" |
Slēdzis( slīdnis1.Vērtība, 20, "Rezultāts1", 25, "Rezultāts2", 30, "Rezultāts3" ) | 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. | patiess 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. | patiess 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. | patiess Displejs tiek nomainīts uz Screen3 |
Pakāpeniskas darbības
Pievienojiet Text input vadīklu un nosauciet to par Text1, ja tai pēc noklusējuma nav šāda nosaukuma.
Laukā Text1 ievadiet 30.
Pievienojiet vadīklu Etiķete un iestatiet tās rekvizītu Text uz šo formulu:
If( Value(Text1.Text) < 20, "Pasūtīt DAUDZ vairāk!", Value(Text1.Text) < 40, "Pasūtīt 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.
Laukā Text1 ievadiet 15.
Vadīkla Etiķete rāda Order MANY more!, jo Text1 vērtība ir mazāk nekā 20.
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.