Miklix

הוסף שיטת תצוגה או עריכה באמצעות הרחבה ב- Dynamics 365

פורסם: 16 בפברואר 2025 בשעה 11:56:27 UTC
עודכן לאחרונה: 12 בינואר 2026 בשעה 8:57:38 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 - "זה" אפילו מפנה לטבלה, כך שתוכלו לגשת לשדות ולמתודות אחרות.

לדוגמה, מחלקה עם מתודת תצוגה פשוטה (וחסרת תועלת לחלוטין) שמחזירה רק את מספר החשבון של הלקוח יכולה להיראות כך:

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

        return this.AccountNum;
    }
}

כעת, כדי להוסיף את שיטת התצוגה לטופס (או להרחבת טופס, אם אינך יכול לערוך את הטופס ישירות), עליך להוסיף שדה לטופס באופן ידני ולוודא שאתה משתמש בסוג הנכון (מחרוזת בדוגמה זו).

לאחר מכן, בפקד תגדיר את DataSource ל-CustTable (או איך שלא יהיה שם מקור הנתונים של CustTable) ואת DataMethod ל-MyCustTable_Extension.displayAccountNum (ודא שאתה כולל את שם המחלקה, אחרת המהדר לא יוכל למצוא את המתודה).

וסיימת :-)

עדכון: אין עוד צורך לכלול את שם מחלקת ההרחבה בעת הוספת מתודת התצוגה לטופס, אך בזמן הפרסום המקורי, היה צורך. אני משאיר את המידע כאן למקרה שחלק מהקוראים עדיין משתמשים בגרסאות ישנות יותר.

קריאה נוספת

אם נהניתם מהפוסט הזה, אולי תאהבו גם את ההצעות הבאות:


שתפו בבלוסקישתפו בפייסבוקשתפו בלינקדאיןשתפו ב-Tumblrשתפו ב-Xשתפו בלינקדאיןהצמד בפינטרסט

מיקל כריסטנסן

על המחבר

מיקל כריסטנסן
מיקל הוא היוצר והבעלים של miklix.com. יש לו למעלה מ-20 שנות ניסיון כמתכנת מחשבים/מפתח תוכנה מקצועי וכיום הוא מועסק במשרה מלאה בתאגיד IT אירופאי גדול. כשהוא לא כותב בלוג, הוא מבלה את זמנו הפנוי במגוון עצום של תחומי עניין, תחביבים ופעילויות, שעשויים לבוא לידי ביטוי במידה מסוימת במגוון הנושאים המכוסים באתר זה.