Miklix

إنشاء حقل بحث لبعد مالي في Dynamics 365

نُشرت: ١٦ فبراير ٢٠٢٥ م في ١١:٣٢:٣٩ ص UTC
آخر تحديث: ١٢ يناير ٢٠٢٦ م في ٨:٥٦:٠٣ ص UTC

تشرح هذه المقالة كيفية إنشاء حقل بحث لبُعد مالي في Dynamics 365 for Operations، بما في ذلك مثال على كود X++.


لقد تمت ترجمة هذه الصفحة آليًا من الإنجليزية بهدف جعلها متاحة لأكبر عدد ممكن من الأشخاص. لسوء الحظ، لم يتم تطوير تقنية الترجمة الآلية بعد، لذا قد تحدث أخطاء. إذا كنت تفضل ذلك، يمكنك عرض النسخة الإنجليزية الأصلية هنا:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

تستند المعلومات الواردة في هذا المنشور إلى Dynamics 365 for Operations، ولكن معظمها سيعمل أيضًا مع Dynamics AX 2012 (انظر أدناه).

كُلِّفتُ مؤخراً بإنشاء حقل جديد يُتيح تحديد بُعد مالي واحد، وهو في هذه الحالة "المنتج". وبالطبع، يجب أن يكون الحقل الجديد قادراً أيضاً على البحث عن القيم الصحيحة لهذا البُعد.

هذا الأمر أكثر تعقيدًا بعض الشيء من البحث العادي في جدول، ولكن إذا كنت تعرف كيف، فهو في الواقع ليس سيئًا للغاية.

لحسن الحظ، يوفر التطبيق القياسي نموذج بحث ملائم (DimensionLookup) يمكن استخدامه لهذا الغرض، إذا قمت فقط بإخباره بسمة البعد التي تريد البحث عنها.

أولاً، عليك إنشاء حقل النموذج نفسه. يمكن أن يستند هذا الحقل إلى حقل جدول أو طريقة تحرير، ولا يهم ذلك بالنسبة للبحث نفسه، ولكن يجب أن يستخدم نوع البيانات الموسع 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);
}

قراءات إضافية

إذا أعجبك هذا المنشور، فقد تعجبك أيضًا هذه الاقتراحات:


شارك على بلوسكايشارك على الفيسبوكشارك على لينكدإنشارك على تمبلرشارك على إكسشارك على لينكدإنثبت على بينتريست

ميكيل كريستنسن

عن المؤلف

ميكيل كريستنسن
ميكيل هو مؤسس ومالك موقع miklix.com. يتمتع بخبرة تزيد عن 20 عامًا كمبرمج كمبيوتر/مطور برامج محترف ويعمل حاليًا بدوام كامل في إحدى شركات تكنولوجيا المعلومات الأوروبية الكبرى. عندما لا يقوم بالتدوين، يقضي وقت فراغه في مجموعة واسعة من الاهتمامات والهوايات والأنشطة، والتي قد تنعكس إلى حد ما في تنوع الموضوعات التي يغطيها هذا الموقع.