2010-08-31 14 views
13

Làm cách nào để lặp qua các hàng của tập dữ liệu trong mã tùy chỉnh?
Tôi có báo cáo chứa tập dữ liệu. Tôi chuyển tập dữ liệu dưới dạng thông số sang hàm mã tùy chỉnh. Nhưng những gì sau đó? Tài liệu tham khảo về các thành viên có sẵn ở đâu?
Đây là mẫu hình nộm của tôi mã cho đến nay:Cách lặp các hàng của tập dữ liệu trong dịch vụ báo cáo Mã tùy chỉnh thứ ba

Public Function ShowParameterValues(ByVal ds as DataSet) as object() 
    Dim codes() As Object 
    Array.Resize(codes,dc.???.Count) 
    codes(0)=ds??(field???)(row??) 
    return codes 
End Function 

Xin lưu ý: đây sẽ là một kịch bản rất đơn giản (nếu nó sẽ làm việc), vì vậy tôi không muốn đi vào lắp ráp tùy chỉnh, vv

+0

bạn đang cố hiển thị dữ liệu trên báo cáo? – beakersoft

+1

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

Trả lời

-1

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?

Các vấn đề liên quan