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 نیز کار می‌کند، اما به جای ایجاد یک event handler، می‌توانید متد lookup فیلد فرم را override کنید.

کنترل‌کننده رویداد باید چیزی شبیه به این باشد (در صورت لزوم نام فرم و نام فیلد را جایگزین کنید):

[
    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);
}

مطالعه بیشتر

اگر از این پست لذت بردید، ممکن است این پیشنهادات را نیز بپسندید:


در Bluesky به اشتراک بگذاریددر فیسبوک به اشتراک بگذاریددر لینکدین به اشتراک بگذاریددر Tumblr به اشتراک بگذاریددر X به اشتراک بگذاریددر لینکدین به اشتراک بگذاریدپین در پینترست

میکل کریستنسن

درباره نویسنده

میکل کریستنسن
مایکل خالق و صاحب miklix.com است. او بیش از 20 سال تجربه به عنوان یک برنامه نویس حرفه ای کامپیوتر / توسعه دهنده نرم افزار دارد و در حال حاضر به طور تمام وقت برای یک شرکت بزرگ فناوری اطلاعات اروپایی مشغول به کار است. هنگامی که وبلاگ نویسی نمی کند، اوقات فراغت خود را صرف مجموعه وسیعی از علایق، سرگرمی ها و فعالیت ها می کند، که ممکن است تا حدی در موضوعات مختلف پوشش داده شده در این وب سایت منعکس شود.