افزودن متد نمایش یا ویرایش از طریق افزونه در Dynamics 365
منتشر شده: ۱۶ فوریهٔ ۲۰۲۵ ساعت ۱۱:۵۶:۲۴ (UTC)
آخرین به روز رسانی: ۱۲ ژانویهٔ ۲۰۲۶ ساعت ۸:۵۷:۳۷ (UTC)
در این مقاله، نحوه استفاده از یک افزونه کلاس برای افزودن یک متد نمایش به جدول و فرم در Dynamics 365 برای عملیات، به همراه مثالهای کد X++ را توضیح میدهم.
Add Display or Edit Method via Extension in Dynamics 365
اگرچه برنامهریزی برای استفاده از متدهای نمایش یا ویرایش در داینامیکس چیزی است که معمولاً باید شما را به این فکر بیندازد که آیا میتوانید راهحل خود را به روشی متفاوت طراحی کنید یا خیر، اما گاهی اوقات این روشها بهترین راه هستند.
در نسخههای قبلی Dynamics و Axapta، ایجاد متدهای نمایش یا ویرایش روی جداول و فرمها بسیار آسان بود، اما وقتی اخیراً مجبور شدم اولین متد ویرایش خود را در Dynamics 365 ایجاد کنم، متوجه شدم که روش انجام این کار تا حدودی متفاوت است.
بدیهی است که چندین رویکرد معتبر وجود دارد، اما روشی که من بهترین میدانم (هم از نظر شهودی بودن و هم از نظر زیبایی کد) استفاده از یک افزونه کلاس است. بله، میتوانید از افزونههای کلاس برای اضافه کردن متدها به انواع عناصر غیر از کلاسها استفاده کنید - در این مورد یک جدول، اما برای فرمها نیز کار میکند.
ابتدا، یک کلاس جدید ایجاد کنید. میتوانید هر نامی که میخواهید برای آن انتخاب کنید، اما به دلایلی باید پسوند آن "_Extension" باشد. فرض کنید میخواهید یک متد نمایش به CustTable اضافه کنید، برای مثال میتوانید نام آن را MyCustTable_Extension بگذارید.
کلاس باید با ExtensionOf تزئین شود تا سیستم بداند که شما چه چیزی را بسط میدهید، مانند این:
public final class MyCustTable_Extension
{
}
حالا میتوانید متد display خود را در این کلاس پیادهسازی کنید، همانطور که در نسخههای قبلی Dynamics مستقیماً روی جدول انجام میدادید - "this" حتی به جدول ارجاع میدهد، بنابراین میتوانید به فیلدها و سایر متدها دسترسی داشته باشید.
برای مثال، یک کلاس با یک متد نمایش ساده (و کاملاً بیفایده) که فقط شماره حساب مشتری را برمیگرداند، میتواند به این شکل باشد:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
حال، برای افزودن متد نمایش به یک فرم (یا افزونه فرم، اگر نمیتوانید فرم را مستقیماً ویرایش کنید)، باید یک فیلد را به صورت دستی به فرم اضافه کنید و مطمئن شوید که از نوع صحیح (رشته در این مثال) استفاده میکنید.
سپس، در کنترل، DataSource را روی CustTable (یا هر نام دیگری که برای منبع داده CustTable خود در نظر دارید) و DataMethod را روی MyCustTable_Extension.displayAccountNum تنظیم میکنید (حتماً نام کلاس را وارد کنید، در غیر این صورت کامپایلر نمیتواند متد را پیدا کند).
و تمام شد :-)
بهروزرسانی: دیگر لازم نیست هنگام افزودن متد نمایش به فرم، نام کلاس افزونه را وارد کنید، اما در زمان انتشار اولیه، لازم بود. اطلاعات را اینجا میگذارم تا در صورتی که برخی از خوانندگان هنوز از نسخههای قدیمیتر استفاده میکنند، بتوانند از آنها استفاده کنند.
مطالعه بیشتر
اگر از این پست لذت بردید، ممکن است این پیشنهادات را نیز بپسندید:
- ویژوال استودیو هنگام بارگیری پروژههای اخیر، در هنگام راهاندازی هنگ میکند
- ایجاد یک فیلد جستجو برای یک بعد مالی در Dynamics 365
- ارزش ابعاد مالی را از کد X++ در Dynamics 365 بهروزرسانی کنید
