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
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ả ví dụ mã X++.
Add Display or Edit Method via Extension in Dynamics 365
Mặc dù việc lập kế hoạch sử dụng phương pháp hiển thị hoặc chỉnh sửa trong Dynamics thường khiến bạn cân nhắc liệu mình 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 trước của Dynamics và Axapta, 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 tình cờ 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 là có một số cách tiếp cận hợp lệ, nhưng cách mà tôi thấy tốt nhất (cả về mặt trực quan và tính đẹp 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 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 hiệu quả với các biểu mẫu.
Đầu tiên, tạo một lớp mới. Bạn có thể đặt tên bất kỳ, nhưng vì lý do nào đó, nó phải được thêm hậu tố "_Extension". Giả sử bạn cần thêm phương thức hiển thị vào CustTable, bạn có thể đặt tên là MyCustTable_Extension.
Lớp phải được trang trí bằng ExtensionOf để hệ thống biết bạn đang mở rộng cái gì, như thế này:
public final class MyCustTable_Extension
{
}
Bây giờ 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ư bạn đã làm trực tiếp trên bảng trong các phiên bản Dynamics trước đó - "this" thậm chí còn tham chiếu đến bảng, do đó 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:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Bây giờ, để 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 loại (trong ví dụ này là chuỗi).
Sau đó, trên bộ điều khiển, bạn sẽ đặt DataSource thành CustTable (hoặc bất kỳ tên nào của nguồn dữ liệu CustTable của bạn) và DataMethod thành MyCustTable_Extension.displayAccountNum (đảm bảo bao gồm tên lớp, nếu không trình biên dịch không thể tìm thấy phương thức).
Và bạn đã hoàn thành :-)
Cập nhật: 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, nhưng tại thời điểm xuất bản ban đầu, thì cần phải bao gồm. Tôi để lại thông tin ở đây trong trường hợp một số độc giả vẫn đang sử dụng các phiên bản cũ hơn.