Miklix

Thêm phương thức hiển thị hoặc chỉnh sửa thông qua tiện ích mở rộng trong Dynamics 365

Đã xuất bản: lúc 11:56:22 UTC 16 tháng 2, 2025
Cập nhật lần cuối: lúc 08:57:36 UTC 12 tháng 1, 2026

Trong bài viết này, tôi sẽ giải thích cách sử dụng phần mở rộng lớp để thêm phương thức hiển thị vào bảng và biểu mẫu trong Dynamics 365 for Operations, bao gồm cả các ví dụ mã X++.


Trang này được dịch máy từ tiếng Anh để có thể tiếp cận được với nhiều người nhất có thể. Thật không may, dịch máy vẫn chưa phải là công nghệ hoàn thiện, do đó có thể xảy ra lỗi. Nếu bạn thích, bạn có thể xem phiên bản tiếng Anh gốc tại đây:

Add Display or Edit Method via Extension in Dynamics 365

Mặc dù việc sử dụng các phương pháp hiển thị hoặc chỉnh sửa trong Dynamics thường khiến bạn phải cân nhắc xem liệu có thể thiết kế giải pháp theo cách khác hay không, nhưng đôi khi đó lại là cách tốt nhất.

Trong các phiên bản Dynamics và Axapta trước đây, việc tạo phương thức hiển thị hoặc chỉnh sửa trên bảng và biểu mẫu rất dễ dàng, nhưng gần đây khi tôi phải tạo phương thức chỉnh sửa đầu tiên trong Dynamics 365, tôi phát hiện ra rằng quy trình thực hiện có phần khác biệt.

Rõ ràng có một vài cách tiếp cận hợp lý, nhưng cách tôi thấy tốt nhất (cả về tính trực quan và tính thẩm mỹ của mã) là sử dụng phần mở rộng lớp. Đúng vậy, bạn có thể sử dụng phần mở rộng lớp để thêm các phương thức vào các loại phần tử khác ngoài lớp - trong trường hợp này là bảng, nhưng nó cũng hoạt động với các biểu mẫu.

Đầu tiên, hãy tạo một lớp mới. Bạn có thể đặt tên cho nó bất kỳ, nhưng vì một số lý do nào đó, nó phải có hậu tố "_Extension". Ví dụ, nếu bạn cần thêm một phương thức hiển thị vào CustTable, bạn có thể đặt tên nó là MyCustTable_Extension.

Lớp này phải được trang trí bằng từ khóa ExtensionOf để hệ thống biết bạn đang kế thừa từ cái gì, như sau:

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

Giờ đây, bạn có thể triển khai phương thức hiển thị của mình trong lớp này, giống như cách bạn đã làm trực tiếp trên bảng trong các phiên bản Dynamics trước đây - "this" thậm chí còn tham chiếu đến bảng, vì vậy bạn có thể truy cập các trường và các phương thức khác.

Ví dụ, một lớp có phương thức hiển thị đơn giản (và hoàn toàn vô dụng) chỉ trả về số tài khoản của khách hàng có thể trông như thế này:

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

        return this.AccountNum;
    }
}

Để thêm phương thức hiển thị vào biểu mẫu (hoặc phần mở rộng biểu mẫu, nếu bạn không thể chỉnh sửa trực tiếp biểu mẫu), bạn cần thêm trường vào biểu mẫu theo cách thủ công và đảm bảo sử dụng đúng kiểu dữ liệu (chuỗi trong ví dụ này).

Tiếp theo, trên điều khiển, bạn sẽ đặt DataSource thành CustTable (hoặc tên nguồn dữ liệu CustTable của bạn là gì đó) và DataMethod thành MyCustTable_Extension.displayAccountNum (hãy chắc chắn bao gồm tên lớp, nếu không trình biên dịch sẽ không tìm thấy phương thức).

Vậy là xong rồi :-)

Cập nhật: Hiện tại không còn cần thiết phải bao gồm tên lớp mở rộng khi thêm phương thức hiển thị vào biểu mẫu nữa, nhưng tại thời điểm xuất bản ban đầu, điều đó là cần thiết. Tôi vẫn để lại thông tin này ở đây phòng trường hợp một số độc giả vẫn đang sử dụng các phiên bản cũ hơn.

Đọc thêm

Nếu bạn thích bài viết này, bạn cũng có thể thích những gợi ý sau:


Chia sẻ trên BlueskyChia sẻ trên FacebookChia sẻ trên LinkedInChia sẻ trên TumblrChia sẻ trên XChia sẻ trên LinkedInGhim trên Pinterest

Mikkel Christensen

Về tác giả

Mikkel Christensen
Mikkel là người sáng lập và chủ sở hữu của miklix.com. Ông có hơn 20 năm kinh nghiệm làm lập trình viên máy tính/nhà phát triển phần mềm chuyên nghiệp và hiện đang làm việc toàn thời gian cho một tập đoàn CNTT lớn của Châu Âu. Khi không viết blog, ông dành thời gian rảnh rỗi cho nhiều sở thích, thú vui và hoạt động, có thể được phản ánh ở một mức độ nào đó trong nhiều chủ đề được đề cập trên trang web này.