DOBON.NET DOBON.NETプログラミング掲示板過去ログ

結合テーブルを使ってクリスタルレポートを作成したい

環境/言語:[OS : Windows XP Professional / 言語 : Visual Basic .NET / .NET Framework : 1.1]
分類:[.NET]

【解決したい問題】

プログラム内で作成したデータセットの結合テーブルを使って、クリスタルレポートで印刷したいのですが、クリスタルレポート側の設定方法が分かりません(単体のテーブルはデザイナで出来ます)。結合テーブルは使えないのでしょうか?
何方かご教授願えればと思い投稿致しました。
こんにちは、じゃんぬ です。

■No13340に返信(VB.NET初級者さんの記事)
> プログラム内で作成したデータセットの結合テーブルを使って、クリスタルレポートで印刷したいのですが、
> クリスタルレポート側の設定方法が分かりません(単体のテーブルはデザイナで出来ます)。
> 結合テーブルは使えないのでしょうか?
> 何方かご教授願えればと思い投稿致しました。

ここで言う結合テーブルとは Dataset 内の Table オブジェクトが複数あることを指してますか?
サブレポートでリレーションしない限りできないのではないでしょうか?
基本はテーブルは単一しか扱えません。
結果をマージするか、内部結合した状態のテーブルを使いましょう。

# 結合って内部結合とかそういう意味じゃないですよね?
■No13343に返信(じゃんぬねっとさんの記事)
> こんにちは、じゃんぬ です。
>
> ■No13340に返信(VB.NET初級者さんの記事)
>>プログラム内で作成したデータセットの結合テーブルを使って、クリスタルレポートで印刷したいのですが、
>>クリスタルレポート側の設定方法が分かりません(単体のテーブルはデザイナで出来ます)。
>>結合テーブルは使えないのでしょうか?
>>何方かご教授願えればと思い投稿致しました。
>
> ここで言う結合テーブルとは Dataset 内の Table オブジェクトが複数あることを指してますか?
> サブレポートでリレーションしない限りできないのではないでしょうか?
> 基本はテーブルは単一しか扱えません。
> 結果をマージするか、内部結合した状態のテーブルを使いましょう。
>
> # 結合って内部結合とかそういう意味じゃないですよね?

じゃんぬねっとさん 回答有り難う御座います。

SQLのSELECT文で結合して作成したテーブルです。
<下記がそのSQL記述例です>…長くなってすみません!!
SqlCmd.CommandText = "SELECT 小売店商品_tbl.商品CD,商品_tbl.商品名カナ,商品_tbl.商品名漢字,小売店商品_tbl.原価単価," + _
"小売店商品_tbl.売価単価,商品_tbl.希望小売価格,小売店商品_tbl.入数,小売店商品_tbl.単位,小売店商品_tbl.有効開始日,小売店商品_tbl.棚位置,小売店商品_tbl.部門CD,小売部門_tbl.部門名,商品_tbl.JICFS商品分類,小売店商品_tbl.棚札品名上段,小売店商品_tbl.棚札品名下段,小売店商品_tbl.規格漢字区分,小売店商品_tbl.入数漢字区分,小売店商品_tbl.規格,小売店商品_tbl.棚札TYPE,小売店商品_tbl.棚札SIZE,小売店商品_tbl.棚札売価,小売店商品_tbl.棚札入数,小売店商品_tbl.登録元CD,小売店商品_tbl.登録年月日,小売店商品_tbl.変更年月日 " + _
"FROM 小売店商品_tbl LEFT JOIN 商品_tbl ON 小売店商品_tbl.商品CD = 商品_tbl.商品CD LEFT JOIN 小売部門_tbl ON 小売店商品_tbl.小売店CD = 小売部門_tbl.小売店CD WHERE 小売店商品_tbl.小売店CD = '" + Me.Cmb小売店CD.Text + "' AND 小売店商品_tbl.卸店CD = '" + Me.Cmb卸店CD.Text + "'"
SqlAdp.SelectCommand = SqlCmd
SqlAdp.Fill(SqlDst, "[小売店商品_tbl]")
            ↑このテーブルを使って印刷したいと思っています。
*三個のテーブルを結合して抽出されたテーブルです。
こんにちは、じゃんぬ です。

重要なのは FROM 句以下なので SELECT 句は適当で良かったです。(^^;)

■No13344に返信(VB.NET初級者さんの記事)
> SqlAdp.Fill(SqlDst, "[小売店商品_tbl]")
>             ↑このテーブルを使って印刷したいと思っています。
> *三個のテーブルを結合して抽出されたテーブルです。

これって、DataSet 内は単一のテーブルになってるハズですよ。
何も考えずに、SqlAdapter.Fill(DataSet) として、
ReportDocument の DataSource に、この DataSet を渡してあげれば OK ですよね。

DOBON.NET | プログラミング道 | プログラミング掲示板