ReportViewer - object datasource, nested objects return #Error

Nếu bạn đang sử dụng Visual Studio 2012 và Trình xem báo cáo, bạn có thể đã gặp sự cố với việc sử dụng Thuộc tính lồng nhau trên báo cáo với các trường trả về lỗi #Error.

Cách khắc phục:
Bạn phải đảm bảo tất cả các lớp được tham chiếu trong báo cáo đều có thuộc tính [Serializable] cho MỌI thuộc tính, và phải được khai báo các lớp dạng Public.

để sử dụng các thuộc tính lồng vào nhau trên báo cáo,  cần điền vào biểu thức sao:
=Fields!SanPham.Value.DonViTinh.Ten

Biểu thức này thêm một trường vào báo cáo là ba thuộc tính nằm sâu trong đối tượng mà báo cáo ràng buộc.

Nguồn dữ liệu báo cáo liên kết với lớp Sản Phẩm, lớp Sản Phẩm chứa thuộc tính Đơn Vị Tính, lớp Đơn Vị Tính có chứa thuộc tính Tên.

Các lớp Sản Phẩm, Đơn Vị Tính, Tên phải được sắp xếp theo thứ tự và phải có thuộc tính [Serializable].
Vd: lớp Sản Phẩm

Lớp Đơn Vị Tính

Và kết quả sẽ được :