tôi nghĩ rằng bạn có câu trả lời của bạn tại địa chỉ:
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/a7d59224-0ee5-491e-883b-2e5fcb3edeab/iterate-through-rows-of-dataset-in-reports-custom-code?forum=sqlreportingservices
Có hai mảnh quan trọng của thông tin tôi đã có thể nắm bắt từ liên kết ở trên:
Đầu tiên, Tập dữ liệu trong Dịch vụ báo cáo không phải là cùng một loại đối tượng như một tập dữ liệu ADO.Net. Một bộ dữ liệu báo cáo là một đối tượng nội bộ được quản lý bởi thời gian chạy SSRS (nó thực sự bắt nguồn từ một đối tượng DataReader) và không phải là một cấu trúc XML chứa các datatables, vv và không thể được chuyển vào mã tùy chỉnh của báo cáo.
Thứ hai, Đã có giải pháp được đăng lên cách có thể lặp lại thông qua các hàng tập dữ liệu trong mã tùy chỉnh của báo cáo bằng cách "chuyển đổi" tập dữ liệu thành thông số đa giá trị (hoặc nếu cần nhiều trường, chuyển đổi nó thành nhiều tham số đa giá trị)):
các multivalued báo cáo Thông số phải có các đặc điểm sau:
ẩn = True, Allow Nhiều giá trị = True tab
giá trị có sẵn: Chọn dữ liệu mong muốn. Chọn id có thể tìm kiếm làm id giá trị và trường bạn muốn hiển thị dưới dạng Trường nhãn.
Giá trị mặc định Tab: Nhận giá trị từ truy vấn. Chọn cùng một Tập dữ liệu như được chọn trong Tab giá trị có sẵn. Trường giá trị giống như bạn chọn cho id giá trị.
Đặt tham số để không bao giờ làm mới (hoặc nó sẽ tải dữ liệu từ mỗi lần lặp của thông số khác).
Bây giờ, ý tưởng là làm cho Thông số này "có thể tìm kiếm". Từ thời điểm này, bạn đã tiếp xúc Tập dữ liệu dưới dạng một mảng trong Tham số có giá trị đa.
Bây giờ trong một mã tùy chỉnh chèn đoạn mã sau:
function GetDataSetLabelFromValue(id as integer) as String
dim i as integer
i = 0
for i = 1 to Report.Parameters!YourParameter.Count()
if Report.Parameters!YourParameter.Value(i) = id then
GetDataSetLabelFromValue = Report.YourParameter!ReportParameter1.Label(i)
Exit For
End if
next i
End Function
Were bạn có thể làm những gì bạn muốn?
bạn đang cố hiển thị dữ liệu trên báo cáo? – beakersoft
Hãy cho chúng tôi biết bạn đang cố gắng đạt được điều gì. Tệp RDL chứa lược đồ XML của cấu trúc báo cáo, chứ không phải dữ liệu. Dữ liệu của báo cáo bị ràng buộc trong thời gian chạy khi báo cáo đã truy xuất dữ liệu. Bạn nên tắt kịch bản để xóa một trang web có báo cáo đã chạy, thực sự hiển thị cho bạn dữ liệu. Một lần nữa, nếu không có thêm thông tin thì khó giải mã những gì bạn muốn đạt được, – Fandango68