Miklix

افزودن متد نمایش یا ویرایش از طریق افزونه در 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 تزئین شود تا سیستم بداند که شما چه چیزی را بسط می‌دهید، مانند این:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
}

حالا می‌توانید متد display خود را در این کلاس پیاده‌سازی کنید، همانطور که در نسخه‌های قبلی Dynamics مستقیماً روی جدول انجام می‌دادید - "this" حتی به جدول ارجاع می‌دهد، بنابراین می‌توانید به فیلدها و سایر متدها دسترسی داشته باشید.

برای مثال، یک کلاس با یک متد نمایش ساده (و کاملاً بی‌فایده) که فقط شماره حساب مشتری را برمی‌گرداند، می‌تواند به این شکل باشد:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
    public display CustAccount displayAccountNum()
    {
        ;

        return this.AccountNum;
    }
}

حال، برای افزودن متد نمایش به یک فرم (یا افزونه فرم، اگر نمی‌توانید فرم را مستقیماً ویرایش کنید)، باید یک فیلد را به صورت دستی به فرم اضافه کنید و مطمئن شوید که از نوع صحیح (رشته در این مثال) استفاده می‌کنید.

سپس، در کنترل، DataSource را روی CustTable (یا هر نام دیگری که برای منبع داده CustTable خود در نظر دارید) و DataMethod را روی MyCustTable_Extension.displayAccountNum تنظیم می‌کنید (حتماً نام کلاس را وارد کنید، در غیر این صورت کامپایلر نمی‌تواند متد را پیدا کند).

و تمام شد :-)

به‌روزرسانی: دیگر لازم نیست هنگام افزودن متد نمایش به فرم، نام کلاس افزونه را وارد کنید، اما در زمان انتشار اولیه، لازم بود. اطلاعات را اینجا می‌گذارم تا در صورتی که برخی از خوانندگان هنوز از نسخه‌های قدیمی‌تر استفاده می‌کنند، بتوانند از آنها استفاده کنند.

مطالعه بیشتر

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


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

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

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

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