If ir Perjungti funkcijas
Taikoma: Drobės programos Dataverse formulių stulpeliai Darbalaukio srautai Modeliu pagrįstos programos Power Pages Power Platform CLI
Nustato, ar kokia nors rinkinio sąlyga yra teisinga (If), arba, ar formulės rezultatas atitinka bet kurią rinkinio reikšmę (Switch), tada pateikia rezultatą arba vykdo veiksmą.
Aprašas
Funkcija If išbando vieną arba kelias sąlygas, kol randamas teisingas rezultatas. Jei toks rezultatas randamas, pateikiama atitinkama reikšmė. Jei tokių rezultatų nerandama, pateikiama numatytoji reikšmė. Bet kuriuo atveju pateikta reikšmė gali būti rodytina eilutė, vertintina formulė arba kita rezultato forma.
Funkcija Switch įvertina formulę ir nustato, ar rezultatas atitinka bet kokią jūsų nurodytos sekos reikšmę. Jei randamas atitikmuo, pateikiama atitinkama reikšmė. Jei atitikmenų nerandama, pateikiama numatytoji reikšmė. Bet kuriuo atveju pateikta reikšmė gali būti rodytina eilutė, vertintina formulė arba kita rezultato forma.
Jei ir "Switch" yra labai panašūs, tačiau turėtumėte naudoti geriausią funkciją savo situacijai:
- Naudokite If, jei norite įvertinti vieną sąlygą. Dažniausia šios funkcijos sintaksė yra If(Condition,ThenResult,DefaultResult ), kuri suteikia bendrą "jei ... tada … Kitaip ..." raštas, matomas kituose programavimo įrankiuose.
- Naudokite If, jei norite įvertinti kelias nesusijusias sąlygas. Programoje „Power Apps“ (skirtingai nuo „Microsoft Excel“) galite nurodyti kelias sąlygas, neįdėdami If formulių.
- Naudokite Switch, jei vieną sąlygą norite įvertinti pagal kelis galimus atitikmenis. Šiuo atveju taip pat galite naudoti If, tačiau formulę reikėtų pakartoti kiekvienam galimam atitikmeniui.
Abi šias funkcijas galite naudoti veikimo formulėse, kad iššakotumėte tarp dviejų ar daugiau veiksmų. Veiksmą suaktyvins tik viena šaka. Sąlygos ir atitikmenys įvertinami eilės tvarka ir procesas sustabdomas, jei kokia nors sąlyga yra teisinga arba randamas atitikmuo.
Tuščia reikšmė pateikiama, jei nėra teisingų sąlygų, nerandama atitikmenų ir nenurodote numatytojo rezultato.
Sintaksė
If( sąlyga,tadaResult [, DefaultResult ] )
If(Sąlyga1,TadaRezultatas1 [ , Sąlyga2,TadaRezultatas2 , ... [, DefaultResult ] ] )
- Sąlygos - Būtina. Formulė (-ės), kurias reikia išbandyti ieškant teisingų reikšmių. Tokiose formulėse įprastai yra lyginimo operatorių (pvz., <, > ir =) bei bandymo funkcijų, pvz., IsBlank ir IsEmpty.
- TadaRezultatai - reikia. Atitinkama pateiktina sąlygos, kurios įvertinta reikšmė yra true, reikšmė.
- DefaultResult - Pasirinktinai. Reikšmė, kurią reikia pateikti, jei jokios sąlygos įvertinta reikšmė nėra true. Jei šio argumento nenurodote, pateikiama tuščia reikšmė.
Switch(formulė,atitiktis1,rezultatas1 [, atitiktis2,rezultatas2 , ... [, DefaultResult ] ] )
- Formulė - būtina. Formulė, kurią reikia įvertinti ieškant atitikmenų. Ši formulė įvertinama tik vieną kartą.
- Rungtynės - Būtina. Reikšmės, kurias reikia palyginti su formulės rezultatu. Jei randamas tikslus atitikmuo, pateikiamas atitinkamas rezultatas.
- Rezultatai - Būtina. Pateiktina atitinkama reikšmė, kai randamas tikslus atitikmuo.
- DefaultResult - Pasirinktinai. Jei tikslus atitikmuo nerandamas, pateikiama ši reikšmė. Jei šio argumento nenurodote, pateikiama tuščia reikšmė.
Pavyzdžiai
Reikšmės formulėse
Toliau pateikiamuose pavyzdžiuose slankiklio valdiklio (pavadinto Slider1) reikšmė yra 25.
Formulė | Aprašą | Rezultatas |
---|---|---|
If( slankiklis1.reikšmė = 25, "rezultatas1" ) | Sąlyga yra teisinga ir pateikiamas atitinkamas rezultatas. | „Result1“ |
If( slankiklis1.reikšmė = 25, "rezultatas1", "rezultatas2" ) | Sąlyga yra teisinga ir pateikiamas atitinkamas rezultatas. | „Result1“ |
If( slankiklis1.reikšmė > 1000, "rezultatas1" ) | Sąlyga yra klaidinga ir DefaultResult nebuvo pateiktas. | Tuščią |
If( slankiklis1.reikšmė > 1000, "rezultatas1", "rezultatas2" ) | Sąlyga yra klaidinga ir pateikiamas DefaultResult. | „Result2“ |
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) | Pirmoji sąlyga yra teisinga ir pateikiamas atitinkamas rezultatas. Antroji sąlyga taip pat yra teisinga, tačiau ji neįvertinama, nes ji argumentų sąraše rodoma vėliau nei sąlyga, kurios įvertinta reikšmė yra true. | „Result1“ |
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) | Pirmoji sąlyga yra klaidinga nes slankiklis nėra tuščias. Antroji sąlyga yra teisinga, nes slankiklio reikšmė yra skaičius, ir pateikiamas atitinkamas rezultatas. | „Result2“ |
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") | Tiek pirmoji, tiek antroji sąlygos yra klaidingos ir pateikiamas DefaultResult. | „Result3“ |
Switch( Slider1.Value, 25, "Result1" ) | Slankiklio reikšmė atitinka pirmąją reikšmę, kurią reikia tikrinti, ir pateikiamas atitinkamas rezultatas. | „Result1“ |
Switch( slankiklis1.reikšmė, 20, "rezultatas1", 25, "rezultatas2", 30, "rezultatas3" ) | Slankiklio reikšmė atitinka antrąją reikšmę, kurią reikia tikrinti, ir pateikiamas atitinkamas rezultatas. | „Result2“ |
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) | Slankiklio reikšmė neatitinka jokios reikšmės, kurią reikia tikrinti. Buvo pateiktas DefaultResult, todėl jis ir pateikiamas. | „DefaultResult“ |
Šakojimas veikimo formulėse
Šiuose pavyzdžiuose į teksto įvesties valdiklį FirstName įvesta reikšmė „John“.
Formulė | Aprašas | Rezultatas |
---|---|---|
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | Sąlyga yra teisinga, todėl vykdoma funkcija Navigate. Naudodami funkciją IsBlank, galite patikrinti, ar užpildytas būtinas formos laukas. Jei FirstName būtų tuščias, ši formulė neturėtų jokio poveikio. | Tiesa Ekranas pakeičiamas į Screen1. |
If( IsBlank( FirstName.Text ), navigate( screen1, ScreenTransition.none ), back() ) | Be ! operatoriaus, sąlyga yra klaidinga, todėl funkcija Navigate nevykdoma. Kaip DefaultResult buvo pateikta funkcija Back, todėl vykdoma ji. | Tiesa Ekranas grįžta į anksčiau rodytą ekraną. |
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) | FirstName.Text rezultatas eilės tvarka palyginamas su „Carlos“, „Kirstin“ ir „John“. Randamas „John“ atitikmuo, todėl programa pereina į Screen3. | Tiesa Ekranas pakeičiamas į Screen3. |
Nuoseklūs veiksmai
Įtraukite teksto įvesties valdiklį ir jį pavadinkite Text1 (jei numatytasis jo pavadinimas nėra toks).
Valdiklyje Text1 įveskite 30.
Įtraukite žymos valdiklį ir jo ypatybę Tekstas nustatykite kaip šią formulę:
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )Valdiklis Label rodo Užsakyti daugiau!, nes Text1 reikšmė yra didesnė nei 20, bet mažesnė nei 40.
Valdiklyje Text1 įveskite 15.
Valdiklis Label rodo Užsakyti DAUG daugiau!, nes Text1 reikšmė yra mažesnė nei 20.
Valdiklyje Text1 įveskite 50.
Žymos valdiklyje rodoma įvesta reikšmė, nes ji yra didesnė nei 40.