Share via


फ़ंक्शन के साथ

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

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

वर्णन

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

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

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

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

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

सिंटैक्स

With( Record, Formula )

  • Record – आवश्यक. वह रिकॉर्ड, जिस पर कार्रवाई की जानी है. नाम मानों के लिए, इनलाइन सिंटैक्स का उपयोग करें { 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 फ़ंक्शन का उपयोग करें.

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

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