Tôi hiện đang làm việc trên một chương trình trong C# cho phép người dùng của chúng tôi chạy, xem và xuất một loạt các Báo cáo tinh thể. Các báo cáo được thực hiện bằng cách sử dụng Crystal Reports 2008 GUI. Một trong những lý do chính để làm điều này là cho phép chúng tôi bảo toàn siêu liên kết khi Báo cáo tinh thể được xuất sang PDF. Chương trình của tôi thực hiện điều này bằng cách xuất sang rtf, sau đó chuyển đổi rtf thành pdf. Nếu bất cứ ai biết về một phương pháp ít phức tạp của việc bảo quản siêu liên kết khi chuyển đổi sang PDf, tôi rất muốn nghe nó, nhưng đó không phải là câu hỏi hiện tại của tôi.Làm cách nào tôi có thể truy xuất câu lệnh SQL SELECT được sử dụng trong Báo cáo tinh thể?
Tôi đã thực hiện rất nhiều thử nghiệm về cách tối ưu hóa chương trình của mình để làm cho việc xuất ít nhất có thể. Từ những gì tôi đã nhìn thấy, có truy vấn ứng dụng cho dữ liệu, sau đó kết buộc resultset với Crystal Report là phương pháp nhanh nhất. Vấn đề của tôi là tôi không thể mã hóa các truy vấn vào chương trình, chúng cần phải được truy xuất lại từ chính Crystal Report.
Trong Crystal Reports 2008, có một tùy chọn được gọi là "Hiển thị truy vấn SQL" trong trình đơn Cơ sở dữ liệu. Điều này sẽ trả về một cửa sổ với truy vấn SQL được sử dụng cho báo cáo đã cho. Đây chính xác là những gì tôi cần để có được bàn tay của tôi từ bên trong ứng dụng của tôi. Tôi đã tải một báo cáo tinh thể và, trong khi gỡ rối, duyệt qua đối tượng ReportDocument đang cố gắng tìm truy vấn, nhưng không có may mắn.
Vì vậy, câu hỏi của tôi là; có phương pháp nào có sẵn cho phép tôi rút ra truy vấn được sử dụng bởi một Báo cáo Crystal đã cho không?
Nếu bảng trong báo cáo là "Lệnh SQL", bạn vẫn có thể đặt nguồn dữ liệu không? Tôi nghĩ rằng bảng đã được tạo ra từ một tập dữ liệu (xsd)? – dotjoe
Trong thử nghiệm của tôi, Báo cáo tinh thể đã sử dụng "Lệnh SQL" làm "Bảng". Tôi không có vấn đề ràng buộc báo cáo với một tập dữ liệu mà tôi đã truy vấn từ cơ sở dữ liệu, sử dụng cùng một lựa chọn SQL tạo thành "Lệnh SQL" trong báo cáo. Nó hoạt động hoàn hảo, và nhanh hơn rất nhiều so với việc tự báo cáo để làm mới dữ liệu của chính nó. – Chronicide
Thú vị, tôi đang trong quá trình cố chuyển đổi báo cáo sang mô hình PUSH và có lẽ tôi không cần phải làm gì nếu tôi có thể chuyển vào nguồn dữ liệu. Tôi là tất cả các thủ tục lưu trữ mặc dù w/và w/out tham số. – dotjoe