2009-06-23 7 views
8

Có ai có đề xuất tham khảo tuyệt vời về ReportViewer của Microsoft (hương vị VS 2008) khi được sử dụng ở chế độ cục bộ không? Tôi hiện đang sử dụng nó nhưng một phần của nó là một chút của một hộp đen vì vậy tôi muốn đọc lên trên toàn bộ chủ đề.Sử dụng subreports với điều khiển ReportViewer của Microsoft ở chế độ cục bộ

Đặc biệt muốn bắt đầu sử dụng các báo cáo phụ để hiển thị các báo cáo cha-con phức tạp hơn. Tôi giả sử họ làm việc trong một chế độ tương tự như Crystal Reports mà tôi khá hợp lý.

Cảm ơn, Rob.

Trả lời

4

tôi làm việc với sự kiểm soát ReportViewer tại một thời điểm và đã có thể tìm thấy một số thông tin hữu ích tại http://www.gotreportviewer.com

+0

Cảm ơn bạn đã tham khảo - có vẻ hữu ích –

1
+0

Có trong ví dụ đó trong các mẫu và hướng dẫn, tôi không thể thấy bất kỳ nội dung nào trên subreports ở chế độ cục bộ. Tôi đang tìm kiếm tài liệu đó thường bị thiếu trong các thư viện tham chiếu thuần túy - tổng quan và thảo luận về các nguyên tắc thiết kế. Ví dụ, tại sao bạn phải thả một bảng hoặc danh sách trên đó. Tại sao nếu bạn không làm điều đó add = First() xung quanh trường.Tôi biết câu trả lời ngay bây giờ nhưng nó đã được rất nhiều đào để tìm câu trả lời. –

+0

@Rob: Cảm ơn. Nếu bạn đã tìm thấy một số câu trả lời, thì có thể bạn nên viết một số bài viết hoặc đóng góp bằng cách trả lời các câu hỏi tại đây trên SO hoặc trên http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/ chủ đề. Ví dụ, tôi đã không sử dụng các điều khiển ReportViewer; chế độ cục bộ khác nhau như thế nào? Tại sao các subreports khác nhau khi sử dụng điều khiển? Nếu bạn đã học được cách khó khăn, có thể bạn có thể giúp những người khác tránh điều đó. Cảm ơn một lần nữa. –

12

Các liên kết đến http://www.gotreportviewer.com là một tốt một lần nhưng nó trông giống như tài liệu trên báo cáo tiểu địa phương và ReportViewer 2008 là một chút thưa thớt và spreadout trên mạng lưới. Nó sẽ là một chủ đề đáng để viết blog về vì vậy tôi sẽ :-)

Dưới đây là một vài tiêu đề:

  1. Một subreport là một báo cáo hoàn toàn riêng biệt nhưng có liên quan đến báo cáo tổng thể sử dụng cơ chế tham số báo cáo chuẩn . Báo cáo chính được định cấu hình để chuyển một hoặc nhiều trường của nó (ví dụ: khóa chính) cho subreport. Sau đó, thông số con thường sử dụng tham số này làm tham số cho truy vấn riêng để tải tập dữ liệu
  2. Mặc dù bạn có thể đã xác định nguồn dữ liệu dựa trên subreport khi thiết kế nó, điều này không được sử dụng khi được sử dụng trong báo cáo chính. Thay vào đó, bạn phải thực hiện một trình xử lý cho sự kiện SubreportProcessing. Trình xử lý tương tự được gọi cho mỗi subreport bạn thêm vào báo cáo chính của mình để bạn có thể truy vấn các tham số được truyền cho trình xử lý để xác định tập dữ liệu cần tải.
  3. Trình xử lý sự kiện được gọi một lần cho mỗi bản ghi trong báo cáo chính. Ví dụ: nếu báo cáo chính hiển thị 200 bản ghi, trình xử lý sự kiện được gọi 200 lần nhưng với một tham số khác nhau mỗi lần.
  4. Vì lý do này, bạn phải cảnh giác với hiệu suất. Báo cáo đầu tiên tôi chạy có 2.000 hồ sơ (hoàn toàn ổn cho một báo cáo bằng phẳng) nhưng mỗi trong số 2.000 hồ sơ đó đã lấy được 20 hồ sơ trẻ em cho báo cáo phụ. Nó đã chạy nhưng mất vài phút trước khi báo cáo được hiển thị
  5. Nếu bạn có thể cấu trúc dữ liệu của mình để có thể sử dụng một tập dữ liệu duy nhất chứa dữ liệu cho cả chính và phụ, thì vùng dữ liệu lồng nhau có hiệu suất tốt hơn - chỉ một truy vấn trả về 2.000 bản ghi không phải 2.000 truy vấn riêng lẻ. Xem http://www.gotreportviewer.com/masterdetail/index.html

Chúc mừng, Rob.