यदि और स्विच फ़ंक्शन
इस पर लागू होता है: कैनवास ऐप्स Dataverse सूत्र स्तंभ डेस्कटॉप प्रवाह मॉडल-संचालित ऐप्स Power Pages Power Platform CLI
निर्धारित करता है कि सेट में कोई भी शर्त सही है अथवा नहीं (If) या सूत्र का परिणाम सेट में किसी भी मान से मेल खाता है अथवा नहीं ( Switch) और फिर एक परिणाम देता है या कोई क्रिया निष्पादित करता है.
वर्णन
If फ़ंक्शन एक या अधिक शर्तों का परीक्षण करता है, जब तक कि एक सही परिणाम नहीं मिल जाता. यदि ऐसा कोई परिणाम मिलता है, तो एक संगत मान दिया जाता है. यदि ऐसा कोई परिणाम नहीं मिलता, तो एक डिफ़ॉल्ट मान दिया जाता है. दोनों में किसी भी स्थिति में, दिया गया मान, दिखाने के लिए एक स्ट्रिंग, मूल्यांकन के लिए एक सूत्र, या परिणाम के अन्य रूप में हो सकता है.
Switch फ़ंक्शन एक सूत्र का मूल्यांकन करता है और निर्धारित करता है कि परिणाम आपके द्वारा निर्दिष्ट अनुक्रम में किसी भी मान से मेल खाता है अथवा नहीं. यदि कोई मिलान मिलता है, तो एक संगत मान दिया जाता है. यदि कोई मिलान नहीं मिलता, तो एक डिफ़ॉल्ट मान दिया जाता है. दोनों में किसी भी स्थिति में, दिया गया मान, दिखाने के लिए एक स्ट्रिंग, मूल्यांकन के लिए एक सूत्र, या परिणाम के अन्य रूप में हो सकता है.
यदि और स्विच बहुत समान हैं, लेकिन आपको अपनी स्थिति के लिए सबसे अच्छा फ़ंक्शन उपयोग करना चाहिए:
- एकल शर्त का मूल्यांकन करने के लिए If का उपयोग करें. इस फ़ंक्शन के लिए सबसे आम सिंटैक्स है If( Condition, ThenResult, DefaultResult ), जो सामान्य "if … then … अन्य प्रोग्रामिंग टूल्स में "अन्यथा ..." पैटर्न देखा गया है।
- एकाधिक असंबंधित शर्तों का मूल्यांकन करने के लिए If का उपयोग करें. Power Apps में (Microsoft Excel के विपरीत), आप बिना If सूत्रों को नेस्ट किए, एकाधिक शर्तें निर्दिष्ट कर सकते हैं.
- एकाधिक संभव मिलानों के समक्ष एकल शर्त का मूल्यांकन करने के लिए Switch का उपयोग करें. आप इस मामले में If का उपयोग भी कर सकते हैं, परंतु आपको प्रत्येक संभव मिलान के लिए सूत्र दोहराना होगा.
आप दो या अधिक क्रियाओं के बीच शाखा करने के लिए व्यवहार सूत्र में इन दोनों फ़ंक्शन का उपयोग कर सकते हैं. केवल एक शाखा एक क्रिया को ट्रिगर करेगी. शर्तों और मिलानों का मूल्यांकन ऑर्डर में किया जाता है, और यदि एक शर्त सही है या मिलान मिल जाता है, तो वे रुक जाती हैं.
यदि कोई शर्त सत्य नहीं है, कोई मिलान नहीं मिलता है, और आप कोई डिफ़ॉल्ट परिणाम निर्दिष्ट नहीं करते हैं, तो रिक्त लौटाया जाता है।
सिंटैक्स
यदि( स्थिति, तबपरिणाम [, डिफ़ॉल्टपरिणाम ] )
यदि( शर्त1, फिरपरिणाम1 [, शर्त2, फिरपरिणाम2, ... [, डिफ़ॉल्टपरिणाम ] ] )
- शर्तें - आवश्यक. सही के लिए परीक्षण किए जाने वाले सूत्र. ऐसे सूत्रों में सामान्यतः तुलना ऑपरेटर (जैसे <, >, और =) और परीक्षण फ़ंक्शन जैसे IsBlank और IsEmpty होते हैं.
- फिरपरिणाम - आवश्यक. जो शर्त सही पर मूल्यांकन करती है, उसके लिए मिलने वाला संगत मान.
- डिफ़ॉल्ट परिणाम - वैकल्पिक. यदि कोई शर्त सही पर मूल्यांकन नहीं करती, तो मिलने वाला मान. यदि आप यह तर्क निर्दिष्ट नहीं करते, तो रिक्त दिया जाता है.
स्विच( फ़ॉर्मूला, मैच1, परिणाम1 [, मैच2, परिणाम2, ... [, डिफ़ॉल्टपरिणाम ] ] )
- सूत्र - आवश्यक. मिलानों के लिए मूल्यांकन करने वाला सूत्र. इस सूत्र का मूल्यांकन केवल एक बार किया जाता है.
- मिलान - आवश्यक. सूत्र के परिणामों के साथ तुलना किए जाने वाले मान. यदि एक सटीक मिलान पाया जाता है, तो संगत परिणाम दिया जाता है.
- परिणाम - आवश्यक. दिया जाने वाला संगत मान, जब एक सटीक मिलान पाया जाता है.
- डिफ़ॉल्ट परिणाम - वैकल्पिक. यदि एक सटीक मिलान नहीं पाया गया, तो यह मान दिया जाता है. यदि आप यह तर्क निर्दिष्ट नहीं करते, तो रिक्त दिया जाता है.
उदाहरण
सूत्रों में मान
निम्नलिखित उदाहरणों में, Slider नियंत्रण (जिसका नाम Slider1 है) का मान 25 है.
सूत्र | विवरण | परिणाम |
---|---|---|
यदि (स्लाइडर1.मान = 25, "परिणाम1") | यह शर्त सही है, और संगत परिणाम दिया गया है. | "Result1" |
यदि (स्लाइडर1.मान = 25, "परिणाम1", "परिणाम2") | यह शर्त सही है, और संगत परिणाम दिया गया है. | "Result1" |
यदि( स्लाइडर1.Value > 1000, "परिणाम1") | शर्त गलत है, और कोई DefaultResult प्रदान नहीं किया गया. | खाली |
यदि( स्लाइडर1.Value > 1000, "परिणाम1", "परिणाम2") | शर्त गलत है, एक DefaultResult प्रदान किया गया था, और यह दिया गया है. | "Result2" |
यदि( स्लाइडर1.मान = 25, "परिणाम1", स्लाइडर1.मान > 0, "परिणाम2") | प्रथम शर्त सही है, और संगत परिणाम दिया गया है. द्वितीय शर्त भी सही है, परंतु इसका मूल्यांकन नहीं किया जाता, क्योंकि यह तर्क सूची में शर्त, जो सही पर मूल्यांकन करती है, की अपेक्षा बाद में दिखाई देती है. | "Result1" |
यदि( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2") | प्रथम शर्त गलत है, क्योंकि स्लाइडर रिक्त नहीं है. द्वितीय शर्त सही है, क्योंकि स्लाइडर का मान एक संख्या है, और संबंधित परिणाम दिया गया है. | "Result2" |
यदि( स्लाइडर1.मान > 1000, "परिणाम1", स्लाइडर1.मान > 50, "परिणाम2", "परिणाम3") | प्रथम और द्वितीय, दोनों शर्त गलत हैं, एक DefaultResult प्रदान किया गया था, और यह दिया गया है. | "Result3" |
स्विच( स्लाइडर1.वैल्यू, 25, "परिणाम1") | स्लाइडर का मान, जाँच किए जाने वाले प्रथम मान से मेल खाता है, और संगत परिणाम दिया जाता है. | "Result1" |
स्विच( स्लाइडर1.वैल्यू, 20, "परिणाम1", 25, "परिणाम2", 30, "परिणाम3") | स्लाइडर का मान, जाँच किए जाने वाले द्वितीय मान से मेल खाता है, और संगत परिणाम दिया जाता है. | "Result2" |
स्विच( स्लाइडर1.वैल्यू, 20, "परिणाम1", 10, "परिणाम2", 0, "परिणाम3", "डिफ़ॉल्टपरिणाम") | स्लाइडर का मान जाँच किए जाने वाले किसी भी मान से मेल नहीं खाता. एक DefaultResult प्रदान किया गया था, इसलिए दिया गया है. | "DefaultResult" |
व्यवहार सूत्रों में शाखा करना
इन उदाहरणों में, एक पाठ इनपुट नियंत्रण, जिसका नाम FirstName है, के मान में "जॉन" टाइप किया गया है.
सूत्र | वर्णन | परिणाम |
---|---|---|
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | शर्त सही है, अतः Navigate फ़ंक्शन चलता है. आप यह परीक्षण करने के लिए, कि आवश्यक प्रपत्र भरा गया है अथवा नहीं, IsBlank फ़ंक्शन का उपयोग कर सकते हैं. यदि FirstName blank थे, तो इस सूत्र का कोई प्रभाव नहीं होगा. | सत्य डिस्प्ले को Screen1 पर परिवर्तित कर दिया गया है. |
यदि( IsBlank( FirstName.Text ), नेविगेट( Screen1, ScreenTransition.None ), वापस() ) | ! ऑपरेटर के बिना, शर्त गलत है, अतः Navigate फ़ंक्शन नहीं चलता. Back फ़ंक्शन को DefaultResult फ़ंक्शन के रूप में प्रदान किया गया था, अतः यह चलता है. | सत्य डिस्प्ले उस स्क्रीन पर वापस जाता है जिसे पहले दिखाया गया था. |
स्विच( प्रथम नाम.टेक्स्ट, "कार्लोस", नेविगेट( स्क्रीन1, स्क्रीनट्रांज़िशन.कोई नहीं ), "किर्स्टिन", नेविगेट( स्क्रीन2, स्क्रीनट्रांज़िशन.कोई नहीं ), "जॉन", नेविगेट( स्क्रीन3, स्क्रीनट्रांज़िशन.कोई नहीं ) ) | FirstName.Text का मान की तुलना "Carlos", "Kirstin", और "John" के समक्ष उस ऑर्डर में की जाती है. एक मिलान "John" के साथ पाया गया, अतः ऐप Screen3 पर नेविगेट करता है. | सत्य डिस्प्ले Screen3 पर परिवर्तित कर दिया गया है. |
चरण दर चरण
एक पाठ इनपुट नियंत्रण जोड़ें और यदि डिफ़ॉल्ट रूप से उसका नाम Text1 नहीं है, तो उसे यह नाम दें.
Text1 में, 30 टाइप करें.
एक Label नियंत्रण जोड़ें, और इसके पाठ गुण को इस सूत्र के लिए जोड़ें:
यदि( Value(Text1.Text) < 20, "अधिक ऑर्डर करें!", Value(Text1.Text) < 40, "अधिक ऑर्डर करें!", Text1.Text )लेबल नियंत्रण अधिक ऑर्डर करें! दिखाता है क्योंकि Text1 का मान 20 से अधिक लेकिन 40 से कम है.
Text1 में, 15 टाइप करें.
लेबल नियंत्रण कई ऑर्डर करें! दिखाता है क्योंकि Text1 का मान 20 से कम है.
Text1 में, 50 टाइप करें.
लेबल नियंत्रण वह मान दिखाता है जो आपने टाइप किया था क्योंकि यह 40 से अधिक है.