Miklix

Dynamics 365 में एक्सटेंशन के माध्यम से डिस्प्ले या संपादन विधि जोड़ें

प्रकाशित: 16 फ़रवरी 2025 को 11:56:17 am UTC बजे

इस आलेख में, मैं समझाता हूँ कि Dynamics 365 for Operations में किसी तालिका और प्रपत्र में डिस्प्ले विधि जोड़ने के लिए क्लास एक्सटेंशन का उपयोग कैसे करें, इसमें X++ कोड उदाहरण भी शामिल हैं।


इस पृष्ठ को अंग्रेजी से मशीन द्वारा अनुवादित किया गया है ताकि इसे अधिक से अधिक लोगों तक पहुँचाया जा सके। दुर्भाग्य से, मशीन अनुवाद अभी तक एक पूर्ण तकनीक नहीं है, इसलिए त्रुटियाँ हो सकती हैं। यदि आप चाहें, तो आप मूल अंग्रेजी संस्करण यहाँ देख सकते हैं:

Add Display or Edit Method via Extension in Dynamics 365

डायनेमिक्स में डिस्प्ले या संपादन विधियों का उपयोग करने की योजना बनाते समय आपको आमतौर पर यह विचार करना चाहिए कि क्या आप अपने समाधान को किसी अलग तरीके से डिजाइन कर सकते हैं, कभी-कभी यही सबसे अच्छा तरीका होता है।

डायनेमिक्स और एक्साप्टा के पिछले संस्करणों में, तालिकाओं और प्रपत्रों पर प्रदर्शन या संपादन विधियां बनाना बहुत आसान था, लेकिन जब मुझे हाल ही में डायनेमिक्स 365 में अपनी पहली संपादन विधि बनानी पड़ी, तो मैंने पाया कि ऐसा करने की प्रक्रिया कुछ अलग है।

जाहिर है कई वैध दृष्टिकोण हैं, लेकिन मुझे जो सबसे अच्छा लगता है (सहजता और कोड की सुंदरता दोनों के संदर्भ में) वह है क्लास एक्सटेंशन का उपयोग करना। हां, आप क्लास एक्सटेंशन का उपयोग क्लास के अलावा अन्य एलिमेंट प्रकारों में विधियां जोड़ने के लिए कर सकते हैं - इस मामले में एक टेबल, लेकिन यह फॉर्म के लिए भी काम करता है।

सबसे पहले, एक नया क्लास बनाएँ। आप इसे अपनी इच्छानुसार कोई भी नाम दे सकते हैं, लेकिन किसी कारण से इसे "_Extension" के साथ जोड़ना होगा । मान लें कि आपको CustTable में डिस्प्ले विधि जोड़ने की आवश्यकता है, तो आप उदाहरण के लिए इसे MyCustTable_Extension नाम दे सकते हैं।

क्लास को ExtensionOf से सजाया जाना चाहिए ताकि सिस्टम को पता चल सके कि आप क्या विस्तारित कर रहे हैं, जैसे:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
}

अब आप इस क्लास में अपनी डिस्प्ले विधि को क्रियान्वित कर सकते हैं, जैसा कि आपने डायनेमिक्स के पुराने संस्करणों में सीधे टेबल पर किया होगा - "यह" टेबल को भी संदर्भित करता है, इसलिए आप फ़ील्ड और अन्य विधियों तक पहुंच सकते हैं।

उदाहरण के लिए, एक सरल (और पूरी तरह से बेकार) डिस्प्ले विधि वाला एक वर्ग जो केवल ग्राहक का खाता नंबर लौटाता है, इस तरह दिख सकता है:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
    public display CustAccount displayAccountNum()
    {
        ;

        return this.AccountNum;
    }
}

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

फिर, नियंत्रण पर आप DataSource को CustTable (या आपके CustTable डेटा स्रोत का जो भी नाम हो) पर सेट करेंगे और DataMethod को MyCustTable_Extension.displayAccountNum पर सेट करेंगे (क्लास नाम शामिल करना सुनिश्चित करें, अन्यथा कंपाइलर विधि नहीं ढूंढ पाएगा)।

और आपने कल लिया :-)

अपडेट: अब फॉर्म में डिस्प्ले मेथड जोड़ते समय एक्सटेंशन क्लास का नाम शामिल करना ज़रूरी नहीं है, लेकिन प्रकाशन के मूल समय में यह ज़रूरी था। मैं यह जानकारी यहाँ इसलिए छोड़ रहा हूँ क्योंकि कुछ पाठक अभी भी पुराने वर्शन इस्तेमाल कर रहे हैं।

ब्लूस्काई पर साझा करेंफेसबुक पर सांझा करेंलिंक्डइन पर साझा करेंटम्बलर पर साझा करेंX पर साझा करेंलिंक्डइन पर साझा करेंPinterest पर पिन करें

मिकेल बैंग क्रिस्टेंसन

लेखक के बारे में

मिकेल बैंग क्रिस्टेंसन
मिकेल miklix.com के निर्माता और मालिक हैं। उन्हें पेशेवर कंप्यूटर प्रोग्रामर/सॉफ्टवेयर डेवलपर के रूप में 20 से अधिक वर्षों का अनुभव है और वर्तमान में वे एक बड़े यूरोपीय आईटी निगम के लिए पूर्णकालिक रूप से कार्यरत हैं। जब वे ब्लॉगिंग नहीं करते हैं, तो वे अपना खाली समय विभिन्न प्रकार की रुचियों, शौक और गतिविधियों में बिताते हैं, जो कुछ हद तक इस वेबसाइट पर शामिल किए गए विषयों की विविधता में परिलक्षित हो सकते हैं।