Miklix

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

פורסם: 16 בפברואר 2025 בשעה 11:56:27 UTC

במאמר זה, אני מסביר כיצד להשתמש בתוסף מחלקה כדי להוסיף שיטת תצוגה לטבלה ולטופס ב- Dynamics 365 for Operations, כולל דוגמאות קוד 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
{
}

עכשיו אתה יכול פשוט ליישם את שיטת התצוגה שלך במחלקה הזו, כמו שהיית עושה ישירות על הטבלה בגרסאות קודמות של 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 אירופאי גדול. כשהוא לא כותב בלוג, הוא מבלה את זמנו הפנוי במגוון עצום של תחומי עניין, תחביבים ופעילויות, שעשויים לבוא לידי ביטוי במידה מסוימת במגוון הנושאים המכוסים באתר זה.