- PR -

DataGrid(DataSet)の内容をCrystalReportに表示する。

1
投稿者投稿内容
nyan
常連さん
会議室デビュー日: 2007/01/18
投稿数: 21
投稿日時: 2007-05-23 11:06
CrystalReportをはじめて1週間程度の者です。
プロジェクトのFromソースにDataGridを表示しています。
DataGridの内容をCrystalReportに表示することは可能でしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-23 11:23
引用:

AraAraさんの書き込み (2007-05-23 11:06) より:

プロジェクトのFromソースにDataGridを表示しています。
DataGridの内容をCrystalReportに表示することは可能でしょうか。


DataSet など DataSource を渡してしまえば可能です。
これはアンバウンド レポートと呼ばれるタイプの手法になります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
nyan
常連さん
会議室デビュー日: 2007/01/18
投稿数: 21
投稿日時: 2007-05-23 12:09
じゃんぬさん、ご解答ありがとうございます。

Form1にCrystalReportViewer1とDataGridView1を貼り付けています。
以下のようにSetDataSourceを行った場合、
CrystalReport上でのレイアウトはどのように設定できるのでしょうか。

DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("col1");
dt.Columns.Add("col2");
ds.Tables.Add(dt);
for (int i = 0; i < 10; i++)
{
ds.Tables[0].Rows.Add("123", "123");
}
this.dataGridView1.DataSource = ds.Tables[0];

CrystalReport1 cr = new CrystalReport1();
crystalReportViewer1.ReportSource = cr;
cr.SetDataSource(ds);
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-23 12:37
引用:

nyanさんの書き込み (2007-05-23 12:09) より:

CrystalReport上でのレイアウトはどのように設定できるのでしょうか。


レイアウトは自分で設定できますので、ここで聞くようなことではないと思うのですが...
私が質問の意図を誤解しているかもしれませんが、

引用:

Form1にCrystalReportViewer1とDataGridView1を貼り付けています。


CrystalReports の仕組みをご存知でないように感じました。

CrystalReportViewer は ReportDocument を表示するに存在するコントロールであり、レイアウトの設定を行うコントロールではありません。
帳票のレイアウトは CrystalReports の ReportDocument (通常はビジュアル デザイナ) で設定します。

とりあえず、簡単な帳票を実際に作成してみた方がイメージが掴めると思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
nyan
常連さん
会議室デビュー日: 2007/01/18
投稿数: 21
投稿日時: 2007-05-23 13:11
じゃんぬさん、解答ありがとうございます。
私の質問が悪くて、誤解を招いてしまいました。

Crystalreportのデザインをする場合、
フィールドエクスプローラでデータソースを選択し、
カラムをレポート上にドラッグしてデザインを設定してると思います。

動的にDataTableを作成した場合は、
フィールドエクスプローラに出ないので、
カラムのドラッグができません。
そのような場合、どのようにしてデザインをするのでしょうか。

初心者で本当に申し訳ありませんが、宜しくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-23 15:05
引用:

nyanさんの書き込み (2007-05-23 13:11) より:

そのような場合、どのようにしてデザインをするのでしょうか。


デザイン時にはスキーマ (型付 DataSet) を使用してデザインを完了させ、Report に渡す DataSet は型付でない普通の DataSet のインスタンスを渡すなんてのはどうでしょうか?

フィールド数を超えていないか、あるいは式フィールドでの期待した型が一致していれば、Crystal Report Engine 的には問題なく動作するハズです。
これならばデザイン時の可読性もある程度確保できます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
nyan
常連さん
会議室デビュー日: 2007/01/18
投稿数: 21
投稿日時: 2007-05-28 15:05
解答ありがとうございます。
教えて頂いた方法でできました。
1

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