2009-07-17 11 views
0

DBのテストを使用してCrystalレポートを作成しました。 .NET ReportDocumentクラスを使用してレポートを実行します。私はテストDBに接続するまですべてうまく動作します。Crystalレポート - .NETを介して実行

同じレポートがUAT DBを指しているとき(すべての必要なDBオブジェクトがUATでも利用可能です)、エラーが発生しています。この問題を解決するには、RPTファイルでサーバー名をUAT DBに手動で変更する必要があります。

これを修正するにはどうすればよいですか?

答えて

1

解決策は、ターゲットデータベースに接続するためのシステムDSN(ODBC)を作成することです。その後、ODBCを任意のデータベース(ローカル、テスト、ステージなど)に切り替えることができます。また、すべてのサーバーで同じ名前のODBC接続が使用可能であることを確認したら、dev-> test-> stage-> productionからレポートを移動するのは簡単です。

0

push reportsを使用すると問題が解決するはずです。厳密に型指定されたADO.NETデータセットを受け入れ、実行時にそのデータセットを提供するようにレポートを設定できます。

+0

いいえ、私はADO.NET DataSetを使用していません。レポートは大胆にDBオブジェクトと話します。私がしなければならないことは、実行時に接続の詳細を送信することだけです。 – Kaz

+0

AFAIK、あなたはできません。このレポートには、設計時に設定された独自のデータベース設定が保持されており、実行時に変更することはできません。 –

0

それはどのように動作するはずですか?どのDBに接続しているかを知っていなければなりませんか?

多分私は何かが欠けているかもしれませんが、接続を正しく取得する必要があるように思えます。

+1

Crystalレポートは、プッシュまたはプルという2つの基本モードで操作できます。私が見たことのあるほとんどのレポートはプルを使用しています。プルは、レポートクラス内の接続データを格納します。レポートのデータソースは別のサーバーに移動するたびに手動で変更する必要があるため、レポートは独自のものである必要がありますが、大きなアプリケーションの範囲内ではPITAです(つまり、dev-> test →生産)。プッシュレポートを使用すると、レポートの外部ソースからデータを受け入れることができます。このソースには、接続の詳細を集中管理するADO.NETデータセットが含まれます。 –

関連する問題