यदि और स्विच फ़ंक्शन

इस पर लागू होता है: कैनवास ऐप्स Dataverse सूत्र कॉलम डेस्कटॉप मॉडल-संचालित ऐप्स Power Platform सीएलआई

निर्धारित करता है कि सेट में कोई भी शर्त सही है अथवा नहीं (If) या सूत्र का परिणाम सेट में किसी भी मान से मेल खाता है अथवा नहीं ( Switch) और फिर एक परिणाम देता है या कोई क्रिया निष्पादित करता है.

वर्णन

If फ़ंक्शन एक या अधिक शर्तों का परीक्षण करता है, जब तक कि एक सही परिणाम नहीं मिल जाता. यदि ऐसा कोई परिणाम मिलता है, तो एक संगत मान दिया जाता है. यदि ऐसा कोई परिणाम नहीं मिलता, तो एक डिफ़ॉल्ट मान दिया जाता है. दोनों में किसी भी स्थिति में, दिया गया मान, दिखाने के लिए एक स्ट्रिंग, मूल्यांकन के लिए एक सूत्र, या परिणाम के अन्य रूप में हो सकता है.

Switch फ़ंक्शन एक सूत्र का मूल्यांकन करता है और निर्धारित करता है कि परिणाम आपके द्वारा निर्दिष्ट अनुक्रम में किसी भी मान से मेल खाता है अथवा नहीं. यदि कोई मिलान मिलता है, तो एक संगत मान दिया जाता है. यदि कोई मिलान नहीं मिलता, तो एक डिफ़ॉल्ट मान दिया जाता है. दोनों में किसी भी स्थिति में, दिया गया मान, दिखाने के लिए एक स्ट्रिंग, मूल्यांकन के लिए एक सूत्र, या परिणाम के अन्य रूप में हो सकता है.

If और Switch में बहुत समानता है, परंतु आपको अपनी स्थिति के लिए सर्वश्रेष्ठ फ़ंक्शन का उपयोग करना चाहिए:

  • एकल शर्त का मूल्यांकन करने के लिए If का उपयोग करें. इस फ़ंक्शन के लिए सबसे आम सिंटैक्स है यदि (स्थिति , तो परिणाम, डिफ़ॉल्ट परिणाम), जो सामान्य "यदि ... then … और ..." पैटर्न अन्य प्रोग्रामिंग उपकरणों में देखा गया।
  • एकाधिक असंबंधित शर्तों का मूल्यांकन करने के लिए If का उपयोग करें. Power Apps में (Microsoft Excel के विपरीत), आप बिना If सूत्रों को नेस्ट किए, एकाधिक शर्तें निर्दिष्ट कर सकते हैं.
  • एकाधिक संभव मिलानों के समक्ष एकल शर्त का मूल्यांकन करने के लिए Switch का उपयोग करें. आप इस मामले में If का उपयोग भी कर सकते हैं, परंतु आपको प्रत्येक संभव मिलान के लिए सूत्र दोहराना होगा.

आप दो या अधिक क्रियाओं के बीच शाखा करने के लिए व्यवहार सूत्र में इन दोनों फ़ंक्शन का उपयोग कर सकते हैं. केवल एक शाखा एक क्रिया को ट्रिगर करेगी. शर्तों और मिलानों का मूल्यांकन ऑर्डर में किया जाता है, और यदि एक शर्त सही है या मिलान मिल जाता है, तो वे रुक जाती हैं.

यदि कोई शर्त सही नहीं है, कोई मिलान नहीं पाया जाता, और आप एक डिफ़ॉल्ट परिणाम निर्दिष्ट नहीं करते हैं, तो रिक्त दिया जाता है.

सिंटैक्स

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

  • Condition(s) - आवश्यक. सही के लिए परीक्षण किए जाने वाले सूत्र. ऐसे सूत्रों में सामान्यतः तुलना ऑपरेटर (जैसे <, >, और =) और परीक्षण फ़ंक्शन जैसे IsBlank और IsEmpty होते हैं.
  • ThenResult(s) - आवश्यक. जो शर्त सही पर मूल्यांकन करती है, उसके लिए मिलने वाला संगत मान.
  • DefaultResult - वैकल्पिक. यदि कोई शर्त सही पर मूल्यांकन नहीं करती, तो मिलने वाला मान. यदि आप यह तर्क निर्दिष्ट नहीं करते, तो रिक्त दिया जाता है.

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

  • Formula - आवश्यक. मिलानों के लिए मूल्यांकन करने वाला सूत्र. इस सूत्र का मूल्यांकन केवल एक बार किया जाता है.
  • Match(s) - आवश्यक. सूत्र के परिणामों के साथ तुलना किए जाने वाले मान. यदि एक सटीक मिलान पाया जाता है, तो संगत परिणाम दिया जाता है.
  • Result(s) - आवश्यक. दिया जाने वाला संगत मान, जब एक सटीक मिलान पाया जाता है.
  • DefaultResult - वैकल्पिक. यदि एक सटीक मिलान नहीं पाया गया, तो यह मान दिया जाता है. यदि आप यह तर्क निर्दिष्ट नहीं करते, तो रिक्त दिया जाता है.

उदाहरण

सूत्रों में मान

निम्नलिखित उदाहरणों में, Slider नियंत्रण (जिसका नाम Slider1 है) का मान 25 है.

सूत्र विवरण परिणाम
If( Slider1.Value = 25, "Result1" ) यह शर्त सही है, और संगत परिणाम दिया गया है. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) यह शर्त सही है, और संगत परिणाम दिया गया है. "Result1"
If( Slider1.Value>1000, "Result1" ) शर्त गलत है, और कोई DefaultResult प्रदान नहीं किया गया. रिक्त
If( Slider1.Value>1000, "Result1", "Result2" ) शर्त गलत है, एक DefaultResult प्रदान किया गया था, और यह दिया गया है. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) प्रथम शर्त सही है, और संगत परिणाम दिया गया है. द्वितीय शर्त भी सही है, परंतु इसका मूल्यांकन नहीं किया जाता, क्योंकि यह तर्क सूची में शर्त, जो सही पर मूल्यांकन करती है, की अपेक्षा बाद में दिखाई देती है. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) प्रथम शर्त गलत है, क्योंकि स्लाइडर रिक्त नहीं है. द्वितीय शर्त सही है, क्योंकि स्लाइडर का मान एक संख्या है, और संबंधित परिणाम दिया गया है. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") प्रथम और द्वितीय, दोनों शर्त गलत हैं, एक 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 है, के मान में "जॉन" टाइप किया गया है.

सूत्र वर्णन परिणाम
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) शर्त सही है, अतः Navigate फ़ंक्शन चलता है. आप यह परीक्षण करने के लिए, कि आवश्यक प्रपत्र भरा गया है अथवा नहीं, IsBlank फ़ंक्शन का उपयोग कर सकते हैं. यदि FirstNameblank थे, तो इस सूत्र का कोई प्रभाव नहीं होगा. सही

डिस्प्ले को Screen1 पर परिवर्तित कर दिया गया है.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) ! ऑपरेटर के बिना, शर्त गलत है, अतः Navigate फ़ंक्शन नहीं चलता. Back फ़ंक्शन को DefaultResult फ़ंक्शन के रूप में प्रदान किया गया था, अतः यह चलता है. सही

डिस्प्ले उस स्क्रीन पर वापस जाता है जिसे पहले दिखाया गया था.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) FirstName.Text का मान की तुलना "Carlos", "Kirstin", और "John" के समक्ष उस ऑर्डर में की जाती है. एक मिलान "John" के साथ पाया गया, अतः ऐप Screen3 पर नेविगेट करता है. सही

डिस्प्ले Screen3 पर परिवर्तित कर दिया गया है.

चरण दर चरण

  1. एक पाठ इनपुट नियंत्रण जोड़ें और यदि डिफ़ॉल्ट रूप से उसका नाम 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 से कम है.

  4. Text1 में, 15 टाइप करें.

    लेबल नियंत्रण कई ऑर्डर करें! दिखाता है क्योंकि Text1 का मान 20 से कम है.

  5. Text1 में, 50 टाइप करें.

    लेबल नियंत्रण वह मान दिखाता है जो आपने टाइप किया था क्योंकि यह 40 से अधिक है.