2010-07-14 32 views
17

Tôi có tệp .rpt mà tôi không viết và không thể tìm thấy tài liệu về. Tôi muốn có thể xem lại SQL được tạo ra từ báo cáo này để tôi có thể tìm ra, tốt, dữ liệu gì nó đã được kéo và các tham số mệnh đề WHERE được sử dụng.trích xuất truy vấn SQL thô từ Báo cáo Tinh thể .rpt tệp

Tôi có thể mở nó và xem bố cục báo cáo. Nhưng khi tôi chọn Cơ sở dữ liệu | Hiển thị truy vấn SQL ... báo cáo cố gắng kết nối với nguồn dữ liệu. Vấn đề là, nguồn dữ liệu đang được sử dụng là không rõ với tôi, có lẽ là một kết nối ODBC được sử dụng bởi bất cứ ai đã viết truy vấn. Tất cả những gì tôi có thể làm ở giai đoạn đó là 'Hủy' và tôi quay lại nhìn nhà thiết kế báo cáo.

Tôi có thiếu gì đó không? Tôi có thể truy vấn SQL mà không cần kết nối với nguồn dữ liệu không? Có vẻ như việc xem các tiêu chí lựa chọn không nên phụ thuộc vào kết nối dữ liệu.

Cảm ơn.

phiên bản: Crystal Reports 2008

+0

Cảm ơn - điều này đã trả lời câu hỏi của riêng tôi - cách xem SQL! –

Trả lời

5

Không có mật khẩu, tôi không chắc bạn có thể làm được bao nhiêu. Có vẻ như "Hiển thị truy vấn SQL" yêu cầu báo cáo để chạy đầu tiên, sau đó tạo ra các kế hoạch SQL. Nó không phải là lý tưởng, nhưng bạn có thể vào Database> Visual Linking Expert để xem ít nhất các bảng và cách chúng được nối, và vào Record Record Formula Editor và xem những câu lệnh WHERE tùy chỉnh là gì.

6

Có thể tìm hiểu một số chi tiết về nguồn dữ liệu hiện có, bằng cách chọn Cơ sở dữ liệu> Đặt vị trí nguồn dữ liệu ....

Cũng như cho phép bạn thay đổi vị trí nguồn dữ liệu, điều này sẽ cho bạn biết một số thông tin về nguồn dữ liệu hiện tại, chẳng hạn như loại nguồn dữ liệu nào đang được sử dụng và có thể (phụ thuộc vào loại trình điều khiển) cơ sở dữ liệu. Nó có thể sẽ ít hữu ích hơn nếu (khi bạn phỏng đoán) nguồn dữ liệu là ODBC, nhưng nếu nó sử dụng một trình điều khiển gốc có thể có một cái gì đó hữu ích.

+0

+1 Đây sẽ là hành động đầu tiên của tôi. Hành động thứ hai của tôi là đi sâu vào chuyên gia cơ sở dữ liệu (như LittleBobbyTables nói). Giữa 2 tùy chọn này, bạn nên có ý tưởng rõ ràng về nguồn dữ liệu. – PowerUser

16

Tôi biết rằng đây là một chuỗi cũ, nhưng tôi đã gặp phải vấn đề tương tự này. Chúng tôi đã từng sử dụng cơ sở dữ liệu/ứng dụng từ một cơ quan bên ngoài.

Mặc dù bây giờ họ có cơ sở dữ liệu/ứng dụng mà họ không có quyền truy cập vào báo cáo tinh thể, vì vậy chúng tôi không thể gửi cho họ báo cáo cũ mà chúng tôi đã từng chạy. Tương tự như vậy, chúng tôi không thể chạy nó vì chúng tôi thậm chí không có cơ sở dữ liệu được thiết lập ở bất kỳ đâu .... Vì vậy, thay vào đó, kế hoạch của chúng tôi là trích xuất mã SQL được tạo ra bởi báo cáo và chuyển tiếp.

Chúng tôi gặp phải sự cố tương tự, nhưng giải pháp thực sự khá đơn giản. Nếu bạn không có quyền truy cập vào nguồn dữ liệu gốc, chỉ cần tạo nguồn dữ liệu 'trống' mới (chẳng hạn như kết nối ODBC). Miễn là kết nối với nguồn dữ liệu hoạt động (tức là nó là một loại nguồn dữ liệu hợp lệ nào đó thì nó hoạt động tốt). Khi chạy tùy chọn 'Hiển thị SQL', hãy trỏ báo cáo đến nguồn dữ liệu này. Miễn là bạn không cố gắng thực sự chạy báo cáo (và chỉ hiển thị SQL) hoạt động sẽ không thành công. Điều này làm việc cho tình hình của chúng tôi anyway. (Crystal Reports 2008)

(tôi có thể cung cấp thêm chi tiết nếu nó giúp trong bất kỳ cách nào.)

+1

Điều này làm việc cho tôi. Trên menu cơ sở dữ liệu flyout, có một tùy chọn "Verify Database Every Time". Điều này sẽ làm hỏng bạn. Bấm vào đó nếu nó được đánh dấu. Sau đó thử lại. – greg

3

Xem các SQL của một chỉ huy trong một báo cáo Crystal tập

Có những lúc bạn chỉ có báo cáo tệp, nhưng không phải cấu trúc cơ sở dữ liệu được liên kết mà báo cáo sử dụng. Điều này là phổ biến khi xử lý các báo cáo mẫu về chức năng bạn muốn bắt chước. Đây là giải pháp CHỈ để cho phép bạn xem SQL của Lệnh mà Báo cáo Tinh thể dựa trên, khi bạn không có kết nối cơ sở dữ liệu cơ sở mà báo cáo được dựa trên. Về bản chất, hộp thoại phải được thỏa mãn trước khi nó hiển thị SQL, vì vậy chúng tôi đánh lừa nó bằng một Nguồn dữ liệu hợp pháp, không phải là một trong đó sẽ hoạt động với SQL thực sự trong Lệnh SQL.

Tại sao báo cáo sử dụng lệnh? Báo cáo Crystal có khả năng liên kết các bảng không? Khi một Báo cáo Tinh thể dựa trên một tập bản ghi quá phức tạp đối với chức năng liên kết bảng trong Crystal Reports, báo cáo có thể dựa trên Truy vấn SQL, thường được phát triển/thử nghiệm trong một công cụ biên tập khác và dán vào lệnh. Điều này cho phép sử dụng các hàm SQL nâng cao.

Nếu bạn chưa có Nguồn dữ liệu trên máy tính được thiết lập mà bạn có thể kết nối, bạn sẽ cần phải tạo một tài khoản đầu tiên.

Một tệp .mdb của Microsoft Access đơn giản được lưu ở một vị trí đơn giản sẽ đủ. Tôi đặt của tôi với đường dẫn C: \ A_test \ test.mdb để làm cho nó dễ tìm. Nếu bạn không có, google cho một tệp mdb mẫu và tải xuống, lưu nó với tên và vị trí bạn có thể nhớ. (Bạn sẽ không bao giờ thực sự mở tệp này, nhưng chỉ cần kết nối với nó.) Khi bạn đã lưu tệp, hãy mở Quản trị viên ODBC và tạo Nguồn dữ liệu mới. (bạn có thể truy cập Quản trị viên ODBC nhanh chóng từ Bắt đầu> nhập ODBC trong Tìm kiếm) Trên tab DSN Người dùng, nhấp vào nút Thêm. Cuộn xuống danh sách trình điều khiển để Microsoft Access Driver (* .mdb), chọn nó và nhấp vào nút Kết thúc. Trong hộp Tên nguồn dữ liệu, nhập tên (Tôi đã sử dụng MyTest). Nhấp vào nút Chọn và chọn tệp mdb bạn đã lưu từ bước trước, bấm OK. Nhấp OK lần nữa. Bạn sẽ thấy Nguồn dữ liệu mới của mình được liệt kê theo tên bạn đã cung cấp. Nhấp vào OK. Bây giờ bạn có nguồn dữ liệu bạn sẽ cần cho các bước tiếp theo.

  1. Mở báo cáo Crystal bạn muốn xem lệnh SQL và nhấp vào nút Chuyên gia cơ sở dữ liệu hoặc Cơ sở dữ liệu> Trình đơn cơ sở dữ liệu chuyên gia.
  2. Trong bảng đã chọn, nhấp chuột phải vào Command và chọn View Command
  3. Hộp chọn nguồn dữ liệu sẽ xuất hiện. Chọn Nguồn dữ liệu bạn đã tạo (hoặc một nguồn bạn đã sử dụng) và nhấp vào nút Kết thúc. Hộp View Command sẽ mở với SQL trong khung bên trái. Sao chép SQL vào trình soạn thảo văn bản yêu thích của bạn.
Các vấn đề liên quan