के माध्यम से साझा करें


With फलन

इस पर लागू होता है: कैनवास ऐप्लिकेशन, Copilot Studio Desktop फ़्लो, मॉडल-चालित ऐप्स, Power Platform, CLI Dataverse फ़ंक्शंस , Power Pages

मानों की गणना करता है और नामित मानों के इनलाइन रिकॉर्ड्स सहित एकल रिकॉर्ड के लिए क्रियाएँ निष्पादित करता है.

वर्णन

With फ़ंक्शन एकल रिकॉर्ड के लिए सूत्र का मूल्यांकन करता है. सूत्र, किसी मान की गणना और/या क्रियाएँ कर सकता है, जैसे डेटा संशोधित करना या कनेक्शन के साथ कार्य करना. रिकॉर्ड्स की तालिका में सभी रिकॉर्ड्स के लिए सूत्र का मूल्यांकन करने हेतु ForAll फ़ंक्शन का उपयोग करें.

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

जटिल सूत्रों की पठनीयता को छोटे नामित उप-सूत्रों में विभाजित करके बेहतर बनाने के लिए उपयोग करें With । ये नामित मान सरल स्थानीय चर की तरह कार्य करते हैं जो इसके दायरे Withतक ही सीमित हैं। UpdateContext फ़ंक्शन के साथ उपयोग किया जाता है जो एक ही इनलाइन रिकॉर्ड सिंटैक्स के साथ Withउपयोग किया जा सकता है। संदर्भ या वैश्विक चर पर उपयोग करना With पसंद किया जाता है क्योंकि यह स्वयं निहित है, समझने में आसान है, और किसी भी घोषणात्मक सूत्र संदर्भ में उपयोग किया जा सकता है।

रिकॉर्ड के उन फ़ील्ड्स तक पहुँचने के लिए उपयोग करें With जो पैच या मिलान जैसे फ़ंक्शंस द्वारा लौटाए जाते हैं. With इन कार्यों से मूल्य को आगे की गणना या कार्यों में उपयोग करने के लिए पर्याप्त समय तक रखता है।

यदि रिकॉर्ड तर्क With एक त्रुटि है, तो वह त्रुटि फ़ंक्शन द्वारा वापस कर दी जाएगी और सूत्र का मूल्यांकन नहीं किया जाएगा।

सिंटैक्स

With( रिकॉर्ड, फॉर्मूला )

  • रिकॉर्ड – आवश्यक. वह रिकॉर्ड, जिस पर कार्रवाई की जानी है. नाम मानों के लिए, इनलाइन सिंटैक्स का उपयोग करें { name1: value1, name2: value2, ... }
  • सूत्र – आवश्यक. रिकॉर्ड के लिए मूल्यांकन किए जाने वाला सूत्र. सूत्र रिकॉर्ड की किसी भी फ़ील्ड को सीधे रिकॉर्ड कार्यक्षेत्र के रूप में संदर्भित कर सकता है.

उदाहरण

साधारण नामित मान

With( { radius: 10,
        height: 15 },
    Pi() * (radius*radius) * height
)
// Result: 4712.38898038 (as shown in a label control)

यह उदाहरण सिलेंडर की मात्रा की गणना करने के लिए नामित मानों के रिकॉर्ड का उपयोग करता है. With सभी इनपुट मूल्यों को एक साथ कैप्चर करने के लिए उपयोग किया जा रहा है, जिससे उन्हें गणना से अलग करना आसान हो जाता है।

नेस्टेड With

फ़ंक्शन का उपयोग करके With ब्याज कैलकुलेटर।

With( { AnnualRate: RateSlider/8/100,        // slider moves in 1/8th increments and convert to decimal
        Amount: AmountSlider*10000,          // slider moves by 10,000 increment
        Years: YearsSlider,                  // slider moves in single year increments, no adjustment required
        AnnualPayments: 12 },                // number of payments per year
      With( { r: AnnualRate/AnnualPayments,  // interest rate
              P: Amount,                     // loan amount
              n: Years*AnnualPayments },     // number of payments
            r*P / (1 - (1+r)^-n)             // standard interest calculation
      )
)

यह उदाहरण मासिक बंधक भुगतान के लिए दो-स्तरीय गणना बनाने के लिए कार्य करता हैWith। जब तक कोई संघर्ष नहीं है, तब तक सभी बाहरी With नामित मान आंतरिक के Withभीतर उपलब्ध हैं।

चूंकि स्लाइडर नियंत्रण केवल 1 की वृद्धि में आगे बढ़ सकते हैं, इसलिए प्रभावी रूप से कस्टम वृद्धि बनाने के लिए स्लाइडर को विभाजित या गुणा किया जाता है. ब्याज दर के मामले में, RateSlider का Max गुण 48 पर सेट होता है, जिसे 1/8 प्रतिशत अंक वृद्धि के लिए 8 से विभाजित और प्रतिशत से दशमलव में रूपांतरित करने के लिए 100 से विभाजित किया जाता है, जो 0.125% से 6% की सीमा को कवर करता है. ऋण राशि के मामले में, AmountSlider का Max गुण 60 पर सेट होता है और 10,000 से गुणा किया जाता है, जो 10,000 से 600,000 तक की सीमा को कवर करता है.

With स्लाइडर्स के चलने और नए ऋण भुगतान के प्रदर्शित होने पर स्वचालित रूप से पुनर्गणना की जाती है। किसी भी चर का उपयोग नहीं किया जाता है और स्लाइडर नियंत्रणों के OnChange गुण का उपयोग करने की कोई आवश्यकता नहीं होती है.

इस ऐप को बनाने के यहां विस्तृत निर्देश दिए गए हैं:

  1. एक नया ऐप बनाएं.
  2. एक स्लाइडर नियंत्रण जोड़ें और उसे RateSlider नाम दें. उसके Max गुण को 48 पर सेट करें.
  3. स्लाइडर नियंत्रण के बाईं ओर एक लेबल नियंत्रण जोड़ें. उसके पाठ गुण को "ब्याज दर:" पर सेट करें.
  4. स्लाइडर नियंत्रण के दाईं ओर एक लेबल नियंत्रण जोड़ें. इसके Text गुण को सूत्र RateSlider/8 & " %" पर सेट करें.
  5. अन्य स्लाइडर नियंत्रण जोड़ें और उसे AmountSlider नाम दें. उसके Max गुण को 60 पर सेट करें.
  6. इस स्लाइडर नियंत्रण के बाईं ओर एक लेबल नियंत्रण जोड़ें. उसके पाठ गुण को "ऋण राशि:" पर सेट करें.
  7. इस स्लाइडर नियंत्रण के दाईं ओर एक लेबल नियंत्रण जोड़ें. उसके पाठ गुण को सूत्र AmountSlider/8 * 10000 पर सेट करें.
  8. अन्य स्लाइडर नियंत्रण जोड़ें और उसे YearsSlider नाम दें. उसके Max गुण को 40 पर सेट करें.
  9. इस स्लाइडर नियंत्रण के बाईं ओर एक लेबल नियंत्रण जोड़ें. उसके पाठ गुण को "वर्षों की संख्या:" पर सेट करें.
  10. इस स्लाइडर नियंत्रण के दाईं ओर एक लेबल नियंत्रण जोड़ें. उसके पाठ गुण को सूत्र YearsSlider पर सेट करें.
  11. एक लेबल नियंत्रण जोड़ें और उसके पाठ गुण को नीचे दिए गए सूत्र पर सेट करें.
  12. अंतिम लेबल नियंत्रण के बाईं ओर एक लेबल नियंत्रण जोड़ें. उसके पाठ गुण को "पुनरावर्ती मासिक भुगतान:" पर सेट करें.

Patch द्वारा दी गई प्राथमिक कुंजी

With( Patch( Orders, Defaults( Orders ), { OrderStatus: "New" } ),
      ForAll( NewOrderDetails,
              Patch( OrderDetails, Defaults( OrderDetails ),
                     { Order: OrderID,          // from With's first argument, primary key of Patch result
                       Quantity: Quantity,      // from ForAll's NewOrderDetails table
                       ProductID: ProductID }   // from ForAll's NewOrderDetails table
              )
      )
)

यह उदाहरण SQL Server में ऑर्डर तालिका पर एक रिकॉर्ड जोड़ता है. उसके बाद यह उस ऑर्डर के लिए दी गई प्राथमिक कुंजी का उपयोग करता है, जिसे OrderID फ़ील्ड में Patch फ़ंक्शन द्वारा दिया गया है, ताकि OrderDetails तालिका में संबंधित रिकॉर्ड बनाए जा सकें.

नियमित व्यंजक के साथ निकाले गए मान

With(
    Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
    Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control, use the Text function to see the seconds)

यह उदाहरण ISO 8601 अवधि मान से घंटे, मिनट और सेकंड निकालता है और उसके बाद दिनांक/समय मान बनाने के लिए इन सब-मैचों का उपयोग करता है.

ध्यान दें कि हालाँकि सब-मैच में वे संख्याएँ होती हैं, जो अभी भी एक पाठ स्ट्रिंग में हैं. गणितीय कार्रवाइयाँ करने से पहले एक संख्या को रूपांतरित करने के लिए Value फ़ंक्शन का उपयोग करें.

एक घटक में एक रिकॉर्ड मैप करें

मैप रिकॉर्डदेखें।