Có cách nào để thay đổi vị trí nguồn dữ liệu cho báo cáo và tất cả subreports của nó mà không phải mở từng tài khoản theo cách thủ công không?Thay thế kết nối cơ sở dữ liệu cho báo cáo và tất cả các subreports
Trả lời
Tôi đoán bạn đang nói về các tệp .rdl từ Dịch vụ báo cáo? (Nếu không, câu trả lời của tôi có thể sai)
Về cơ bản chúng chỉ là XML, vì vậy bạn có thể tải từng truy vấn trong và thực hiện truy vấn XPath để nhận nút chứa nguồn dữ liệu và cập nhật nó.
Báo cáo phụ được liên kết (ít nhất là trong CR XI) chia sẻ nguồn dữ liệu của báo cáo chính - có lẽ báo cáo của bạn đã được định cấu hình sao cho đó không phải là tùy chọn cho bạn?
@Unsliced Tôi nghĩ rằng vấn đề anh ta gặp phải là khi bạn lấy một báo cáo tinh thể mà ai đó đã phát triển dựa vào cơ sở dữ liệu khác và đưa nó vào Crystal Reports XI, bạn phải thay đổi Datasource cho từng trường, bao gồm cả trong subreports. Nếu bạn chỉ thay đổi nguồn ở cấp cao nhất của báo cáo, nó thường bị lỗi. (Tôi nghĩ rằng đó là một vấn đề được biết đến trong Crystal Reports).
Dưới đây là cách tôi đặt kết nối của mình khi chạy. Tôi nhận được thông tin kết nối từ một vị trí cấu hình.
#'SET REPORT CONNECTION INFO
For i = 0 To rsource.ReportDocument.DataSourceConnections.Count - 1
rsource.ReportDocument.DataSourceConnections(i).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
Next
For i = 0 To rsource.ReportDocument.Subreports.Count - 1
For x = 0 To rsource.ReportDocument.Subreports(i).DataSourceConnections.Count - 1
rsource.ReportDocument.OpenSubreport(rsource.ReportDocument.Subreports(i).Name).DataSourceConnections(x).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
Next
Next
Nếu bạn chỉ làm điều này như một thỏa thuận một lần, đề xuất của tôi có thể không giúp ích. Nhưng, nếu bạn thay đổi nguồn dữ liệu thường xuyên, nó có thể hữu ích.
Tuyên bố từ chối trách nhiệm: Tôi chưa từng làm việc với Crystal kể từ phiên bản 9.0, vì vậy tôi không biết liệu họ có cải thiện điều này hay không. Tôi luôn sử dụng UDL files. Về cơ bản, nó là một con trỏ đến một nguồn dữ liệu. Thiết lập báo cáo của bạn để trỏ đến UDL và UDL trỏ đến nguồn dữ liệu. Nếu nguồn thay đổi, chỉ cần cập nhật UDL.
Điều này cực kỳ hữu ích nếu bạn có nhiều báo cáo. Bạn chỉ phải cập nhật một tệp khi máy chủ thay đổi.
- 1. Cơ sở dữ liệu và kết nối
- 2. mysql: xem tất cả các kết nối mở với một cơ sở dữ liệu đã cho?
- 3. Các kết nối cơ sở dữ liệu và xoắn Xoắn
- 4. Cách tạo nhiều kết nối cơ sở dữ liệu cho các cơ sở dữ liệu khác nhau trong java
- 5. Sử dụng cho Cơ sở dữ liệu báo cáo phppgadmin?
- 6. Báo cáo tinh thể - đóng kết nối cơ sở dữ liệu
- 7. CakePHP Cách thay đổi kết nối cơ sở dữ liệu
- 8. Đa luồng và kết nối cơ sở dữ liệu
- 9. CQRS, DDD cơ sở dữ liệu báo cáo đồng bộ
- 10. Kết nối tối đa cho cơ sở dữ liệu sqlite3
- 11. Hồ bơi kết nối cơ sở dữ liệu JBoss
- 12. Giữ mở một kết nối cơ sở dữ liệu MongoDB
- 13. Oracle 11g Khách hàng kết nối với cả cơ sở dữ liệu 10g và 11g
- 14. Cơ sở dữ liệu giao dịch và báo cáo - Làm cách nào?
- 15. PostgreSQL: Xem quyền kết nối cơ sở dữ liệu
- 16. Báo cáo Jasper: Cách biên dịch subreports
- 17. thay thế cho cơ sở dữ liệu bỏ phiếu?
- 18. JDBC - Kết nối nhiều cơ sở dữ liệu
- 19. Điều kiện kết nối với cơ sở dữ liệu
- 20. Kết nối với hai cơ sở dữ liệu
- 21. Báo cáo tinh thể Thay đổi nguồn dữ liệu
- 22. Ưu tiên kết nối cơ sở dữ liệu PHP/MySQL?
- 23. Thông tin chuỗi kết nối cơ sở dữ liệu
- 24. Tất cả Sub tinh Báo cáo kết với cùng một dữ liệu
- 25. Kết nối cơ sở dữ liệu động symfony2
- 26. Lớp kết nối cơ sở dữ liệu PHP
- 27. Kết nối với cơ sở dữ liệu MySQL với RMySQL
- 28. Khi nào Entity Framework mở và đóng các kết nối cơ sở dữ liệu?
- 29. Java, cách thay đổi cơ sở dữ liệu hiện tại sang cơ sở dữ liệu khác?
- 30. Không thể kết nối với cơ sở dữ liệu .mdf
Tôi thấy điều này hữu ích nhất cho việc thiết lập kết nối khi chạy. –