Miklix

დაამატეთ ჩვენების ან რედაქტირების მეთოდი გაფართოების საშუალებით Dynamics 365-ში

გამოქვეყნებულია: 16 თებერვალი, 2025, 11:58:45 UTC

ამ სტატიაში მე განვმარტავ, თუ როგორ გამოვიყენოთ კლასის გაფართოება, რათა დაამატოთ ჩვენების მეთოდი მაგიდაზე და ფორმა Dynamics 365-ში ოპერაციებისთვის, 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-ზეგააზიარეთ Facebook-ზეგააზიარეთ LinkedIn-ზეგააზიარეთ Tumblr-ზეგააზიარეთ X-ზეგააზიარეთ LinkedIn-ზეPinterest-ზე დამაგრება

მიკელ ბანგ კრისტენსენი

ავტორის შესახებ

მიკელ ბანგ კრისტენსენი
მაიკლ არის miklix.com-ის შემქმნელი და მფლობელი. მას აქვს 20 წელზე მეტი გამოცდილება, როგორც პროფესიონალი კომპიუტერული პროგრამისტი/პროგრამული უზრუნველყოფის შემქმნელი და ამჟამად მუშაობს სრულ განაკვეთზე დიდ ევროპულ IT კორპორაციაში. როდესაც ბლოგს არ წერს, თავისუფალ დროს ატარებს ინტერესების, ჰობიებისა და აქტივობების უზარმაზარ სპექტრზე, რაც შეიძლება გარკვეულწილად აისახოს ამ ვებსაიტზე გაშუქებულ თემებზე.