ایجاد یک فیلد جستجو برای یک بعد مالی در 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);
}
مطالعه بیشتر
اگر از این پست لذت بردید، ممکن است این پیشنهادات را نیز بپسندید:
- Dynamics 365 FO Virtual Machine Dev یا Test را در حالت Maintenance Mode قرار دهید
- افزودن متد نمایش یا ویرایش از طریق افزونه در Dynamics 365
- ارزش ابعاد مالی را از کد X++ در Dynamics 365 بهروزرسانی کنید
