If және Switch функциялары

Қолданылады: Canvas apps Dataverse формула бағандары Жұмыс үстелі ағындары CLI моделі басқарылатын бағдарламалар Power Platform

Жиындағы кез келген шарт шын екенін (If) немесе формуланың нәтижесі жиындағы кез келген мәнге сәйкес келетінін (Switch) анықтайды, содан кейін нәтижені қайтарады немесе әрекетті орындайды.

Сипаттама

If функциясы true нәтижесі табылғанша бір немесе бірнеше шартты тексереді. Мұндай нәтиже табылса, сәйкес мән қайтарылады. Мұндай нәтиже табылмаса, әдепкі мән қайтарылады. Жағдайлардың кез келгенінде, қайтарылған мән көрсететін жол, есептейтін формула немесе нәтиженің басқа түрі болуы керек.

Switch функциясы формуланы есептейді және нәтиже сіз көрсеткен реттіліктегі кез келген мәнге сәйкес пе, соны анықтайды. Сәйкестік табылса, сәйкес мән қайтарылады. Сәйкестік табылмаса, әдепкі мән қайтарылады. Жағдайлардың кез келгенінде, қайтарылған мән көрсететін жол, есептейтін формула немесе нәтиженің басқа түрі болуы керек.

If және Switch өте ұқсас, бірақ жағдайыңыз үшін ең жақсы функцияны пайдалануыңыз керек:

  • If функциясын бір шартты есептеу үшін пайдаланыңыз. Бұл функция үшін ең көп тараған синтаксис - If( Condition,ThenResult,DefaultResult), ол жалпы "егер... then … басқа ...» басқа бағдарламалау құралдарында көрінген әшекей.
  • If функциясын бірнеше қатысты емес шартты есептеу үшін пайдаланыңыз. Power Apps ішінде (Microsoft Excel бағдарламасынан ерекшелігі) If формулаларын кірістірусіз бірнеше шартты көрсетуге болады.
  • Switch функциясын бір шартты бірнеше қатысты сәйкестікке қатысты есептеу үшін пайдаланыңыз. Сондай-ақ бұл жағдайда If функциясын пайдалануға болады, бірақ әрбір мүмкін сәйкестік үшін осы формуланы қайталау керек болады.

Екі немесе бірнеше әрекет арасында тармақ жасау үшін мінез-құлық формулаларында осы функциялардың екеуін де пайдалануға болады. Бір тармақ қана әрекетті бастайды. Шарттар мен сәйкестіктер ретпен есептеледі және шарт true болса немесе сәйкестік табылса тоқтайды.

Ешбір шарт true болмаса, сәйкестіктер табылмаса және әдепкі нәтижені көрсетпесеңіз, бос мән қайтарылады.

Синтаксис

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

  • Condition(s) - Міндетті. true мәнін беретін-бермейтінін тексеретін формула(лар). Мұндай формулалар әдетте операторларды (мысалы, <, > және =) және IsBlank және IsEmpty сияқты тексеру функцияларын қамтиды.
  • ThenResult(s) - Міндетті. Есептегенде true мәнін беретін шарт үішн қайтарылатын сәйкес мән.
  • DefaultResult - Міндетті емес. Ешбір шарт есептегенде true мәнін бермесе қайтаратын мән. Бұл аргументті көрсетпесеңіз, бос мән қайтарылады.

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

  • Formula - Міндетті. Сәйкестіктер бар-жоғы есептелетін формула. Бұл формула тек бір рет есептеледі.
  • Match(s) - Міндетті. Формула берген нәтижемен салыстыратын мәндер. Дәл сәйкестік табылса, сәйкес Нәтиже қайтарылады.
  • Result(s) - Міндетті. Дәл сәйкестік табылғанда қайтаратын сәйкес мән.
  • DefaultResult - Міндетті емес. Дәл сәйкестік табылмаса, осы мән қайтарылады. Бұл аргументті көрсетпесеңіз, бос мән қайтарылады.

Мысалдар

Формулалардағы мәндер

Келесі мысалда Жүгірткі басқару элементінің (Slider1 деп аталады) 25 мәні бар.

Формула Сипаттама Нәтиже
If( Slider1.Value = 25, "Result1" ) Шарт — true және сәйкес нәтиже қайтарылды. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Шарт — true және сәйкес нәтиже қайтарылды. "Result1"
If( Slider1.Value>1000, "Result1" ) Шарт жалған және DefaultResult көрсетілмеген. бос
If( Slider1.Value>1000, "Result1", "Result2" ) Шарт жалған және DefaultResult көрсетілген және ол қайтарылған. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Бірінші шарт — true және сәйкес нәтиже қайтарылды. Екінші шарт та true, бірақ ол есептелмейді, өйткені ол аргументтер тізімінде есептегенде true мәнін беретін шарттар кейінірек орналасқан. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Бірінші шарт — false, өйткені жүгірткі бос емес. Екінші шарт — true, өйткені жүгірткінің мәні — сан және сәйкес нәтиже қайтарылады. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") Бірінші және екінші шарттардың екеуі де false, DefaultResult көрсетілген және ол қайтарылады. "Result3"
Switch( Slider1.Value, 25, "Result1" ) Жүгірткінің мәні тексерілетін бірінші мәнге сәйкес және сәйкес нәтиже қайтарылады. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Жүгірткінің мәні тексерілетін екінші мәнге сәйкес және сәйкес нәтиже қайтарылады. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Жүгірткінің мәні тексерілетін ешбір мәнге сәйкес емес. DefaultResult мәні көрсетілген, сондықтан ол қайтарылады. "DefaultResult"

Мінез-құлық формулаларындағы тармақтар

Бұл мысалдарда FirstName атты Text input басқару элементіне "Джон" деген ат терілген.

Формула Сипаттама Нәтиже
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Шарт — true, сондықтан Navigate функциясы орындалады. Міндетті пішін өрісі толтырылған-толтырылмағанын тексеру үшін IsBlank функциясын пайдалануға болады. FirstNameblank болса, бұл формуланың әсері болмайтын еді. true

Дисплей Screen1 экранына өзгереді.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) ! операторынсыз шарт false болады, сондықтан Navigate функциясы орындалмайды. Back функциясы DefaultResult ретінде көрсетілген, сондықтан ол орындалады. true

Дисплей алдында көрсетілген экранға оралады.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) FirstName.Text мәні "Карлос", "Кирстин" және "Джон" аттарымен осы ретпен салыстырылады. "Джон" атымен сәйкестік табылды, сондықтан бағдарлама Screen3 экранына өтеді. true

Дисплей Screen3 экранына өзгереді.

Қадамдық

  1. Text input басқару элементін қосыңыз және әдепкі бойынша мұндай аты болмаса, оған Text1 атауын беріңіз.

  2. Text1 ішінде 30 деп теріңіз.

  3. Label басқару элементін қосыңыз да, оның Мәтін сипатын мына формулаға орнатыңыз:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Белгі басқару элементі Text1 мәні 20-дан көп бірақ 40-тан аз болғандықтан Order more! көрсетеді.

  4. Text1 ішінде 15 деп теріңіз.

    Белгі басқару элементі Text1 мәні 20-дан аз болғандықтан Order MANY! көрсетеді.

  5. Text1 ішінде 50 деп теріңіз.

    Белгі басқару элементі сіз терген мәнді көрсетеді, өйткені ол 40-тан көбірек.