100を超えるカスタムレポートを作成したCrystal Reports 2008ユーザーがいます。レポートは、すべてのSQL Serverデータベースを照会します(SQL 2005)。
このデータベースサーバーは新しいシステムに置き換えられ(SQL 2008 R2を実行)、既存のデータベースは新しいサーバーに移動されます。新しいデータベースサーバーは別の名前になります(Crystal Reports接続を介してアドレス指定できます)が、アプリケーションの1つも同時にアップグレードされます。古いデータベース(DB_A)は履歴レポートのために新しいサーバーに復元され、新しいデータベース(DB_B)が作成されます。新しいDB_Bのスキーマは非常に似ているため、Crystal Reportsのほとんどは、新しいDB_Bでレポート定義を指定する以外はほとんど、またはまったく変更せずに新しいDB_Bに対して実行できるはずです。
もちろん、カスタム開発されたレポートの大部分は、DB_Aに対してクエリを作成します。
私の質問は、古いデータベース(DB_A)ではなく、新しいデータベース名(DB_B)を指すように既存のCrystal Reportsファイルを変更するにはどうすればよいですか?
[データベース]メニューと[データソースの場所の設定]メニューオプションを使用して、レポート内の各テーブルの名前または場所を変更します。
これは、データベースの場所の変更、新しいデータベースへの変更、レポートで使用されている個々のテーブルの場所または名前の変更に有効です。
データソース接続を変更するには、[データベース]メニューに移動し、[データソースの場所を設定]をクリックします。
そして、レポートを再度実行してください。
重要なのは、最初にデータソース接続を変更し、次に更新が必要なテーブルを変更してから、他のものを変更することです。接続によって、下のテーブルが自動的に変更されることはありません。これらのテーブルは、彼らが最初に目にする大きなガチョウのような動物に刻印したゴスリングのようなものです。それらは、すべての理由とロジックをバイパスし続け、特に手動で変更しない限り、常に行っていた場所に移動します。
より便利にするためのヒントを次に示します。[データベース]メニューの[SQLクエリの表示]を使用すると、任意のテーブルのデータベースで修飾されたテーブル名( "Sales"。 "dbo"。 "Customers"など)が表示されます。特定のデータベースに直接移動します。たくさんのことを行っている場合、それは狩りをより簡単にするかもしれません。この問題に取り組んだとき、すべてのテーブルを新しいデータベースの新しいテーブルを指すように変更する必要がありました。
データベースを選択| Set Datasource Location ...現在の接続のデータベースノード(黄色がかった円柱)を選択し、目的の接続のデータベースノードを選択し(認証が必要な場合があります)、[更新]をクリックします。
「サブレポート」ノードに対してもこれを行う必要があります。
参考までに、各テーブルを個別に選択してから、[更新]を選択して、個別のテーブルを作成することもできます。