Dynamics 365 में वित्तीय आयाम के लिए लुकअप फ़ील्ड बनाना
प्रकाशित: 16 फ़रवरी 2025 को 11:34:33 am UTC बजे
यह आलेख बताता है कि Dynamics 365 for Operations में वित्तीय आयाम के लिए लुकअप फ़ील्ड कैसे बनाया जाए, जिसमें X++ कोड उदाहरण भी शामिल है.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
इस पोस्ट में दी गई जानकारी Dynamics 365 for Operations पर आधारित है, लेकिन इसका अधिकांश भाग Dynamics AX 2012 के लिए भी काम करेगा (नीचे देखें).
मुझे हाल ही में एक नया फ़ील्ड बनाने का काम सौंपा गया था जिसमें एक एकल वित्तीय आयाम निर्दिष्ट करना संभव होना चाहिए, इस मामले में उत्पाद। बेशक, नया फ़ील्ड इस आयाम के मान्य मानों को देखने में भी सक्षम होना चाहिए।
यह किसी तालिका में नियमित लुकअप की तुलना में थोड़ा अधिक जटिल है, लेकिन यदि आप जानते हैं कि कैसे, तो यह वास्तव में इतना बुरा नहीं है।
सौभाग्य से, मानक अनुप्रयोग एक सुविधाजनक लुकअप फॉर्म (डाइमेंशन लुकअप) प्रदान करता है जिसका उपयोग इस उद्देश्य के लिए किया जा सकता है, यदि आप उसे यह बता दें कि किस आयाम विशेषता को लुकअप करना है।
सबसे पहले, आपको फ़ॉर्म फ़ील्ड खुद बनाना होगा। यह टेबल फ़ील्ड या एडिट विधि पर आधारित हो सकता है, लुकअप के लिए इससे कोई फ़र्क नहीं पड़ता, लेकिन किसी न किसी तरह से इसे DimensionValue विस्तारित डेटा प्रकार का उपयोग करना होगा।
फिर आपको फ़ील्ड के लिए OnLookup इवेंट हैंडलर बनाना होगा। इवेंट हैंडलर बनाने के लिए, फ़ील्ड के लिए OnLookup इवेंट पर राइट-क्लिक करें, फिर "इवेंट हैंडलर विधि कॉपी करें" चुनें। फिर आप किसी खाली इवेंट हैंडलर विधि को क्लास में पेस्ट कर सकते हैं और वहाँ से उसे संपादित कर सकते हैं।
सूचना: इनमें से अधिकांश Dynamics AX 2012 के लिए भी काम करेंगे, लेकिन इवेंट हैंडलर बनाने के बजाय, आप फ़ॉर्म फ़ील्ड की लुकअप विधि को ओवरराइड कर सकते हैं।
इवेंट हैंडलर कुछ इस तरह दिखना चाहिए (आवश्यकतानुसार फॉर्म नाम और फ़ील्ड नाम बदलें):
FormControlEventHandler(formControlStr( MyForm,
MyProductDimField),
FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup( FormControl _sender,
FormControlEventArgs _e)
{
FormStringControl control;
Args args;
FormRun formRun;
DimensionAttribute dimAttribute;
;
dimAttribute = DimensionAttribute::findByName('Product');
args = new Args();
args.record(dimAttribute);
args.caller(_sender);
args.name(formStr(DimensionLookup));
formRun = classFactory.formRunClass(args);formRun.init();
control = _sender as FormStringControl;
control.performFormLookup(formRun);
}