- - PR -
DataGridViewの内容を印刷したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-03-22 17:45
VB2005でWindowsアプリケーションで開発しています。
現在DataSetを使い、SQLServerに非接続のデータアクセスをしています。 (テキストファイルを読み込んで接続しています。 StreamReaderを用いていますのでConnectionオブジェクトは使っておりません。) DataSetの内容をDataGridViewに表示しており、その内容を「印刷」したいのですが。 手持ちにあるTipsにはPrintDocumentクラスを利用して 'テーブルの内容を出力 Dim dr As OrderDataSet.GoodsRow For Each dr In OrderDataSet.Goods.Rows '1レコードを出力 e.Graphics.DrawString( _ dr.GoodsID.ToString.PadRight(10) & _ dr.GoodsName.ToString.PadRight(20, " ") & _ dr.Price.ToString.PadLeft(5), _ f, Brushes.Black, _ x, y + (cnt * pitch)) '印刷位置を更新 cnt = cnt + 1 Next というコードになるのですが、これだとデータソースを追加しなければなりません。 データソースを追加せず、DataGridViewの内容を「印刷」したいのですがどうしたらよいのでしょうか? [ メッセージ編集済み 編集者: 未記入 編集日時 2007-03-22 17:49 ] | ||||
|
投稿日時: 2007-03-22 17:59
OrderDataSet.Goods.Rows に対してループして
dr.〜のようにアクセスしている部分を、ちょっと変えればいいだけではないでしょうか? 自前のDataSet内のテーブルの行に対してループするとか、 DataGridViewのRowsに対してループするとかで。 | ||||
|
投稿日時: 2007-03-22 18:41
すみません、勉強不足のためループするという意味がよくわからないのですが・・・ 要は Dim dr As OrderDataSet.GoodsRow For Each dr In OrderDataSet.Goods.Rows の部分を Dim dr As DataSet内のテーブルの行に対してループ? For Each dr In DataSet内のテーブルの行に対してループ? などに変えるということでしょうか? | ||||
|
投稿日時: 2007-03-22 19:15
For Each なり For なりを使って全行に対して処理を行うことを
「ループ」と言いました。 DataGridViewのみたまんまを印刷するだけなら、DataGridViewの行に対して ループさせるほうが自然かも知れませんね。
DataSet 内のテーブルに対してループさせる場合も、 ほとんど似たようなコードになると思いますので、 上記を参考に、ご自分で考えてみてください。 |
1