2011-11-14 28 views
22

Tôi có người dùng Crystal Reports 2008 có hơn 100 báo cáo được phát triển tùy chỉnh. Các báo cáo tất cả truy vấn cơ sở dữ liệu Sql Server (SQL 2005).
Máy chủ cơ sở dữ liệu này đang được thay thế bằng một hệ thống mới (chạy SQL 2008 R2) và cơ sở dữ liệu hiện có sẽ được chuyển sang máy chủ mới. Máy chủ cơ sở dữ liệu mới sẽ có một tên khác (mà tôi có thể giải quyết thông qua Crystal Reports Connections), tuy nhiên, tuy nhiên, một trong các ứng dụng cũng đang được nâng cấp cùng một lúc. Cơ sở dữ liệu cũ (DB_A) sẽ được khôi phục trên máy chủ mới để báo cáo lịch sử và cơ sở dữ liệu mới (DB_B) sẽ được tạo. DB_B mới sẽ có một lược đồ rất giống nhau, vì vậy tôi hy vọng rằng hầu hết các báo cáo Crystal sẽ có thể chạy với DB_B mới với ít hoặc không có sửa đổi nào ngoài việc chỉ định định nghĩa báo cáo tại DB_B mới.Làm cách nào để chỉ báo cáo Crystal tại cơ sở dữ liệu mới

Tất nhiên, phần lớn người dùng của tôi đã tùy chỉnh các báo cáo được phát triển truy vấn đối với DB_A.

Câu hỏi của tôi là: Làm cách nào để sửa đổi tệp Crystal Reports hiện có để trỏ vào tên cơ sở dữ liệu mới (DB_B) thay vì cơ sở dữ liệu cũ (DB_A)?

+0

Câu trả lời phải thực sự được khôi phục về cơ sở dữ liệu cũ sang cơ sở dữ liệu mới bằng một tên khác. Sau đó, cơ sở dữ liệu mới nên đã sử dụng cùng một cơ sở dữ liệu mà tất cả các báo cáo đang sử dụng. Nếu lược đồ khác nhau, bạn chỉ cần chỉnh sửa các báo cáo đó có giản đồ khác nhau, chứ không phải vị trí nguồn dữ liệu. – Sun

Trả lời

4

Chọn cơ sở dữ liệu | Đặt vị trí nguồn dữ liệu ... Chọn nút cơ sở dữ liệu (hình trụ màu vàng-ish) của kết nối hiện tại, sau đó chọn nút cơ sở dữ liệu của kết nối mong muốn (bạn có thể cần phải xác thực), sau đó nhấp vào Cập nhật.

Bạn cũng sẽ cần thực hiện việc này cho các nút 'Subreports'.

FYI, bạn cũng có thể thực hiện các bảng riêng lẻ bằng cách chọn từng cá nhân, sau đó chọn Cập nhật.

+1

Chỉ cần thử điều này, báo cáo vẫn đang truy vấn DB_A. Ngoài ra, khi tôi chọn "Hiển thị truy vấn SQL" từ trình đơn Cơ sở dữ liệu và nó cho thấy "SELECT col1, col2 FROM [DB_A]. [Dbo]. [Bảng]". Những gì tôi cần là để làm điều đó "SELECT col1, col2 FROM [DB_B]. [Dbo]. [Bảng]" – JSR

+0

Bạn đang sử dụng trình điều khiển gốc, ODBC hoặc OLEDB? – craig

+0

Tôi thường sử dụng trình điều khiển gốc. Nếu tôi gặp sự cố khi chuyển đổi, tôi sẽ tạo nguồn dữ liệu ODBC tạm thời trỏ đến vị trí chính xác. Tôi sẽ đặt vị trí cho nguồn dữ liệu ODBC, sau đó quay lại trình điều khiển gốc với chủ sở hữu lược đồ chính xác. – craig

44

Sử dụng trình đơn Cơ sở dữ liệu và tùy chọn trình đơn "Đặt nguồn dữ liệu vị trí" để thay đổi tên hoặc vị trí của mỗi bảng trong báo cáo.

Điều này làm việc để thay đổi vị trí của cơ sở dữ liệu, thay đổi sang cơ sở dữ liệu mới và thay đổi vị trí hoặc tên của một bảng riêng lẻ được sử dụng trong báo cáo của bạn.

Để thay đổi kết nối nguồn dữ liệu, hãy chuyển đến trình đơn Cơ sở dữ liệu và nhấp vào Đặt vị trí nguồn dữ liệu.

  1. Thay đổi Connection Datasource:
    1. Từ danh sách Current Data Source (top box), nhấp một lần vào kết nối nguồn dữ liệu mà bạn muốn thay đổi.
    2. Trong danh sách Thay thế bằng (hộp dưới cùng), hãy bấm một lần vào kết nối nguồn dữ liệu mới.
    3. Nhấp vào Cập nhật.
  2. Bàn Thay đổi cá nhân:
    1. Từ danh sách Current Data Source (top box), mở rộng kết nối nguồn dữ liệu mà bạn muốn thay đổi.
    2. Tìm bảng mà bạn muốn cập nhật vị trí hoặc tên.
    3. Trong danh sách Thay thế bằng (hộp dưới cùng), mở rộng kết nối nguồn dữ liệu mới.
    4. Tìm bảng mới bạn muốn cập nhật để trỏ tới.
    5. Nhấp vào Cập nhật.
    6. Lưu ý rằng nếu tên bảng đã thay đổi, tên bảng cũ sẽ vẫn xuất hiện trong Trình khám phá trường ngay cả khi nó đang sử dụng bảng mới.(Bạn có thể xác nhận điều này đang xem Bảng Tên thuộc tính của bảng trong Nguồn Dữ liệu Hiện tại ở Vị trí Đặt Nguồn dữ liệu. Ảnh http://i.imgur.com/gzGYVTZ.png) Có thể đổi tên tên bảng cũ thành tên mới từ trình đơn ngữ cảnh trong Database Expert -> Bảng đã Chọn .
  3. Thay đổi Subreports:
    1. Lặp lại từng bước trên cho bất kỳ subreports bạn có thể đã nhúng trong báo cáo.
    2. Đóng cửa sổ Đặt vị trí nguồn dữ liệu.
  4. Bất kỳ lệnh hoặc SQL Expressions:
    1. Tới menu Database và nhấp Expert Database.
    2. Nếu nhà thiết kế báo cáo sử dụng "Thêm lệnh" để viết SQL tùy chỉnh, nó sẽ được hiển thị trong hộp Bảng đã chọn ở bên phải.
    3. Nhấp chuột phải vào lệnh đó và chọn "Chỉnh sửa lệnh".
    4. Kiểm tra xem SQL đó có đang chỉ định một cơ sở dữ liệu cụ thể hay không. Nếu vậy bạn có thể cần phải thay đổi nó.
    5. Đóng cửa sổ Chuyên gia cơ sở dữ liệu.
    6. Trong ngăn Field Explorer ở bên phải, nhấp chuột phải vào bất kỳ Biểu thức SQL nào.
    7. Kiểm tra xem các biểu thức SQL có đang chỉ định một cơ sở dữ liệu cụ thể hay không. Nếu vậy bạn có thể cần phải thay đổi nó.
    8. Lưu và đóng cửa sổ Trình chỉnh sửa công thức khi bạn chỉnh sửa xong.

Và thử chạy lại báo cáo.

Điều quan trọng là thay đổi kết nối nguồn dữ liệu trước, sau đó bất kỳ bảng nào bạn cần cập nhật, sau đó là các nội dung khác. Kết nối sẽ không tự động thay đổi các bảng bên dưới. Những cái bàn đó giống như những con goslings đã in trên con thú lớn đầu tiên giống như con ngỗng mà chúng nhìn thấy. Họ sẽ tiếp tục bỏ qua tất cả lý do và logic và đi đến nơi họ luôn đi trừ khi bạn thay đổi chúng một cách thủ công.

Để thuận tiện hơn, đây là mẹo: Bạn có thể "Hiển thị truy vấn SQL" trong trình đơn Cơ sở dữ liệu và bạn sẽ thấy tên bảng đủ điều kiện với cơ sở dữ liệu (như "Bán hàng". "Dbo". "Khách hàng") cho bất kỳ bảng nào đi thẳng đến một cơ sở dữ liệu cụ thể. Điều đó có thể làm cho việc săn bắn dễ dàng hơn nếu bạn có nhiều thứ đang diễn ra. Khi tôi giải quyết vấn đề này, tôi phải thay đổi từng bảng để trỏ đến bảng mới trong cơ sở dữ liệu mới.

+0

+1. Bạn đã tiết kiệm cho tôi giờ làm việc! –

+0

nhưng nếu bạn làm như vậy, thì tất cả các trường nguồn dữ liệu mới sẽ ở định dạng chuỗi –

+0

Nếu bạn đang làm việc trong Visual Studio, sau khi bạn thực hiện việc này, bạn có thể muốn lưu, đóng và mở lại Visual Studio. Tôi chỉ có VS2010 tai nạn khoảng 20 phút sau khi tôi đã làm bản cập nhật này (mà làm việc tuyệt vời ban đầu) .. nhưng khi nó bị rơi .... Tôi đã "Không thể tải tập dữ liệu vì lỗi sau: Tham chiếu đối tượng không được đặt thành một thể hiện của một đối tượng." Có thể không liên quan gì cả ... nhưng nó có thể tiết kiệm một số đau đớn ... Tôi cho phép VS tự động mở lại lần đầu tiên ... có lẽ không phải là một ý tưởng hay ... Tôi có thể đã tắt tốt hơn khi tắt VS và mở lại bằng tay ... –

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