- PR -

レポートのDB接続変更について

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2005/04/20
投稿数: 69
投稿日時: 2005-10-11 10:09
こんにちは。
いつもお世話になっています。

現在、VB6.0、CrystalReportXIで開発しています。
CrystalReportXIのDB接続変更方法について質問させてください。

メインレポートとサブレポートを使用したデザイナのDB接続先を変更する
ことができず困っています。

メインレポートのみのデザイナのDB接続先を変更する際は、

@デザイナを右クリック
Aデータベースを選択
Bデータベースの照合を選択
Cサービス名、ユーザID、パスワード入力

の手順で接続先を変更させることができたのですが、サブレポートを使用した
デザイナのみ、この手順で接続先を変更しようとすると、
「データベーステーブル(テーブル名)が見つかりません。
 このテーブルをレポートから削除しますか?」
というメッセージが表示され、データベースを更新することができません。

なにか特別な設定が必要でしょうか?
アドバイス宜しくお願いします。。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-11 10:26
こんにちは、じゃんぬ です。

引用:

未記入さんの書き込み (2005-10-11 10:09) より:

メインレポートとサブレポートを使用したデザイナのDB接続先を変更する
ことができず困っています。
サブレポートを使用したデザイナのみ、この手順で接続先を変更しようとすると、
「データベーステーブル(テーブル名)が見つかりません。
 このテーブルをレポートから削除しますか?」
というメッセージが表示され、データベースを更新することができません。


レポートから一旦削除して追加になるのですから普通の流れだと思いますが...

サブ レポートの "現在の接続先" が存在しないので警告表示されているか、
新しいテーブルで現在のフィールドが使えないので、警告表示されているのではないでしょうか?

変更した結果のフィールドが、新しいテーブルに対してマッピング出来ないという話でしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
ベテラン
会議室デビュー日: 2005/04/20
投稿数: 69
投稿日時: 2005-10-11 11:32
アドバイスありがとうございます。

>変更した結果のフィールドが、新しいテーブルに対してマッピング出来ないという話でしょうか?

申し訳ありません。どのように説明すればよいかわかりません…
やろうとしていることを順を追って説明させてください。

システム上で条件によって接続するDBが変わるのですが、DB@に接続する場合は
デザイナ@を、DBAに接続する場合はデザイナAを表示します。
DB@とAは、サービス名、ユーザ、パスワードは違うものの同じテーブル、同じフ
ィールドを持ちます。
デザイナ@とAは、名前は違うものの帳票の構成自体は同じです。

ここで、DB@とAのあるテーブルにフィールドが一つ追加されたので、デザイナ上
でデータベースの更新を行いました。

先程の手順でデザイナ@上でDB@に接続し、データベースの更新を行うと
「データベースは更新されました」
のメッセージが表示され、実行も正常に行われました。
同様にデザイナA上でDBAに接続し、データベースの更新を行うと
「データベーステーブル(テーブル名)が見つかりません。
 このテーブルをレポートから削除しますか?」
のメッセージが表示され、DBAを更新することができません。

今までは、サブレポートが原因だと思っていたのですが…
デザイナ@上でDB@の更新ができたので、違うようです。
(特別何も設定等はしていません。)
DBAのテーブルで追加したフィールドが使えないので警告が出ている、
ということでしょうか?
SQLPLUSで確認したところ、DBAのテーブルにとフィールドは
追加されているようなのですが…

長くなり申し訳ありません。
どうぞ宜しくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-11 11:43
こんにちは、じゃんぬ です。

不思議ですね。
レポート 1 とレポート 2 での相違点は「接続情報」だけでしょうから、
その辺りを調べてみて問題ないようであるなら、1 度フィールド剥がすしかないでしょうね。

というより、同じ構成のレポートでデータベースが違うというだけで、
何故にレポートを分ける必要があるのでしょうか...?

たとえば、私ならばアンバウンドなレポートを使って、
Dataset で渡してそれを表示するようにします。
プログラム側で Dataset を生成するデータベースを動的に変更するだけです。
この方が変更にも強いと私は考えています。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
ベテラン
会議室デビュー日: 2005/04/20
投稿数: 69
投稿日時: 2005-10-11 11:57
じゃんぬさん、ありがとうございます。

デザイナはコピーして作ったので、やはり接続情報のみが違うと思います。
実は私もどうしてわざわざデザイナを別にしているか疑問でしたが、
既存のシステムがそのようになっているようです。
接続するDBの方に問題があるかもしれないので、再度調べてみます。
ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)