- PR -

CrystalReportで2テーブルを出力できるか?

投稿者投稿内容
うさぎ
会議室デビュー日: 2006/10/04
投稿数: 3
投稿日時: 2006-10-04 11:43
いつもお世話になっています。

環境はWIN2000,VB.NET FrameWork2.0です。

CrystalReportで質問なのですが、

CrystalReportのフィールドエクスプローラーに2つのテーブルを追加して
それを出力する方法が分かりません。


サブレポートや、2テーブルをSQLで1テーブルに結合して表示とかは出来たのですが、
参考書にも出来そうなことが書かれていたので、この方法でやれと言われています。(汗)

フィールドエクスプローラーに1つのテーブルを追加して出力することは出来ました。

Dim dtSet As New DataSet1
Dim cnt As Integer
Dim dr As New DataSet1TableAdapters.AAATableAdapter
cnt = dr.Fill(dtSet.AAA)
CrystalReportSource1.Report.FileName = "CrystalReport.rpt"
CrystalReportSource1.ReportDocument.SetDataSource(dtSet.Tables("AAA"))

CrystalReportViewer1.ReportSource = CrystalReportSource1


テーブルを2つ出力するとなると・・・、

Dim dtSet As New DataSet1
Dim cnt As Integer
Dim dr As New DataSet1TableAdapters.AAATableAdapter
cnt = dr.Fill(dtSet.AAA)
CrystalReportSource1.Report.FileName = "CrystalReport.rpt"
CrystalReportSource1.ReportDocument.SetDataSource(dtSet.Tables("AAA"))

Dim dr As New DataSet1TableAdapters.BBBTableAdapter
cnt = dr.Fill(dtSet.BBB)
CrystalReportSource1.Report.FileName = "CrystalReport.rpt"
CrystalReportSource1.ReportDocument.SetDataSource(dtSet.Tables("BBB"))

CrystalReportViewer1.ReportSource = CrystalReportSource1

とやってみたのですが、エラーが出力されます。

「このグループセクションは、条件フィールドが存在しないかまたは無効なため出力できません。別の条件フィールドを選択してください。・・・.rptのエラー:グループ条件が無効です。」

どう書けば、CrystalReportSourceに2つのテーブルを渡せるのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-04 11:49
引用:

うさぎさんの書き込み (2006-10-04 11:43) より:

CrystalReportSource1.ReportDocument.SetDataSource(dtSet.Tables("AAA"))
CrystalReportSource1.ReportDocument.SetDataSource(dtSet.Tables("BBB"))


これでは、'AAA' は 'BBB' を設定したと同時に消失しますよね。
DataTable ではなく、DataSet で渡してください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-10-04 11:56
さかもとと申します。

じゃんぬねっと様がおっしゃるように、DataSetで渡すことになります。

1:データセットA.データテーブル1 として最初のデータを入れておく
2:データセットA.データテーブル2 として次のデータを入れておく
3:2つのテーブルが入っているデータセットAをクリレポへ渡す
うさぎ
会議室デビュー日: 2006/10/04
投稿数: 3
投稿日時: 2006-10-04 12:03
じゃんぬねっとさん回答ありがとうございます。
出来ました!

言われて納得です。(汗) 

ありがとうございました!!
うさぎ
会議室デビュー日: 2006/10/04
投稿数: 3
投稿日時: 2006-10-04 12:07
さかもとさんありがとうございます。

実は昨日DataSetごと渡すのは試したのですが、
何をミスしたのかエラーが出てしまったので、
CrystalReportSourceにテーブルをAddするのでは・・・と考えていました。

単純なことなのにすいません(;´Д⊂)
まるこ
会議室デビュー日: 2003/11/13
投稿数: 13
投稿日時: 2006-10-11 11:34
お世話になります。まること申します。

突然の参加で申し訳ありませんが、
本件に関連する質問をさせてください。

複数のテーブルをデータセットに格納して、
CrystalReportに渡す件です。

複数のテーブルが同一DBの場合は、
ご指摘の方法でうまくいきますが、
異なるDBに格納されたテーブルのときに
うまくいきません。

データセット格納後にテーブルの内容を
メッセージボックスで確認すると、
レコードは問題なく格納されています。

CrystalReportに渡すときに問題が
起きているように思います。

勉強不足で申し訳ありません。
異なるDBでは不可能なのでしょうか?
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-10-11 11:45
さかもとと申します。

「異なるDB」というのがいまいち分かりません。
DBMSが違う??(SQLServerとOracleとか?)ということでしょうか?

まるこ
会議室デビュー日: 2003/11/13
投稿数: 13
投稿日時: 2006-10-11 12:10
TO:さかもとさま

早々のご返信ありがとうございます。

説明不足ですみません。
単一のSQLServer上でふたつのDBを作成して
それぞれのDB配下にテーブルを格納しています。

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