Miklix

افزودن متد نمایش یا ویرایش از طریق افزونه در Dynamics 365

منتشر شده: ۱۶ فوریهٔ ۲۰۲۵ ساعت ۱۱:۵۶:۲۴ (UTC)

در این مقاله، نحوه استفاده از افزونه کلاس برای افزودن یک متد نمایش به یک جدول و یک فرم در Dynamics 365 for Operations، نمونه های کد X++ را توضیح می دهم.


این صفحه ماشینی از انگلیسی ترجمه شد تا در دسترس هر چه بیشتر مردم باشد. متأسفانه، ترجمه ماشینی هنوز یک فناوری کامل نشده است، بنابراین ممکن است خطاهایی رخ دهد. در صورت تمایل می توانید نسخه اصلی انگلیسی را در اینجا مشاهده کنید:

Add Display or Edit Method via Extension in Dynamics 365

در حالی که برنامه ریزی برای استفاده از متدهای نمایش یا ویرایش در Dynamics چیزی است که به طور کلی باید شما را وادار کند که اگر بتوانید راه حل خود را به روشی متفاوت طراحی کنید، در نظر بگیرید، گاهی اوقات آنها بهترین راه برای رفتن هستند.

در نسخه های قبلی Dynamics و Axapta، ایجاد متدهای نمایش یا ویرایش در جداول و فرم ها بسیار آسان بود، اما زمانی که اخیرا مجبور شدم اولین روش ویرایش خود را در Dynamics 365 انجام دهم، متوجه شدم که روش انجام این کار تا حدودی متفاوت است.

بدیهی است که چندین رویکرد معتبر وجود دارد، اما یکی از بهترین رویکردهایی که به نظر من (هم از نظر شهودی و هم از نظر زیبایی کد) استفاده از پسوند کلاس است. بله، می توانید از پسوندهای کلاس برای افزودن متدها به انواع عناصر دیگر به غیر از کلاس ها استفاده کنید - در این مورد یک جدول، اما برای فرم ها نیز کار می کند.

ابتدا یک کلاس جدید ایجاد کنید. شما می توانید آن را هر چیزی که می خواهید نامگذاری کنید، اما به دلایلی باید پسوند "_Extension" باشد. فرض کنید باید یک روش نمایش به CustTable اضافه کنید، به عنوان مثال می توانید نام آن را MyCustTable_Extension.

کلاس باید با ExtensionOf تزئین شود تا به سیستم اطلاع دهد که چه چیزی را گسترش می دهید، مانند:

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

اکنون می توانید روش نمایش خود را در این کلاس پیاده سازی کنید، همانطور که مستقیما روی جدول در نسخه های قبلی 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 سال تجربه به عنوان یک برنامه نویس حرفه ای کامپیوتر / توسعه دهنده نرم افزار دارد و در حال حاضر به طور تمام وقت برای یک شرکت بزرگ فناوری اطلاعات اروپایی مشغول به کار است. هنگامی که وبلاگ نویسی نمی کند، اوقات فراغت خود را صرف مجموعه وسیعی از علایق، سرگرمی ها و فعالیت ها می کند، که ممکن است تا حدی در موضوعات مختلف پوشش داده شده در این وب سایت منعکس شود.