- PR -

DataGridの内容を印刷

投稿者投稿内容
パンダ
会議室デビュー日: 2003/01/31
投稿数: 8
投稿日時: 2003-01-31 17:25
VB.NETでWinformsを使ってます。

DataSetの内容をDataGridに表示し、
その内容を「印刷」したいのですがどうしたらよいのでしょうか?
ご教授よろしくお願いします。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-02-03 10:59
質問の前に確認させて頂きます。

前のスレッドに対しては解決しましたか?
解決した場合はどうやって解決したのか、
解決しなかった場合はどこでつまづいているのか、
教えて頂いた人に対して返事を書くのがマナーです。

返事も書かずに似たような質問を立てるのは、
せっかく時間を割いて教えて頂いた方に失礼だとは思いませんか?
教える人の立場をよく考えてあげてください。

次回から、その点を考慮して頂ければ幸いです。

さて、本題に入りますが、この質問からどうやって「印刷」したいのかが
残念ながら読み取れません。

「印刷」ボタンを押下して印刷したいのか?
はたまた、DataGridにDataBindして表示されたら自動的に印刷したいのか?
それとも、印刷というイベントを発生させる手法を教えて欲しいのか?

目的が漠然とし過ぎておりますので、もうすこし具体的に「こうしたい」というのを
説明して頂けないでしょうか?

[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-02-03 11:20 ]
パンダ
会議室デビュー日: 2003/01/31
投稿数: 8
投稿日時: 2003-02-03 11:46
>返事も書かずに似たような質問を立てるのは、
>せっかく時間を割いて教えて頂いた方に失礼だとは思いませんか?
>教える人の立場をよく考えてあげてください。

大変失礼しました。
自分が返信したときの事を考えると反省します。

>さて、本題に入りますが、この質問からどうやって「印刷」したいのかが
>残念ながら読み取れません。

行いたいことは、FormLoad時にデータベースから、DataGrid(DataSetを使用)に表示し、
「印刷ボタン」の押下でDataGridに表示されている内容を印刷したいのです。
ただ単に文字が表示するだけ(レイアウト無視)で構いません。

以上よろしくお願いします。

Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2003-02-03 13:09
こんにちわ。

印刷はいろいろと方法があると思うのですが、
レイアウト無視でよければPrintDocumentクラスを利用するのが簡単ではないでしょうか。

Imports System.Drawing.Printing

Private sub button1_click ////
Dim printDoc as New PrintDocument
AddHandler PrintDoc.PrintPage, AddressOf PrintDataGridData
Printdoc.print
end sub

'プライベートメソッド
Private Sub PrintDataGridData(sender as object , e as printPageEventArgs)
dim text as string = "test" <-DataGridからテキスト作成
e.Graphics.DrawString(text , new font("なにかフォント"),Brushes.Black)
end sub

動作未確認コード適当ですが。
パンダ
会議室デビュー日: 2003/01/31
投稿数: 8
投稿日時: 2003-02-03 14:17
Togさんありがとう御座います。

ただいまコードと格闘中です。

e.Graphics.DrawString(text , New Font("MS UI Gothic", 10),Brushes.Black)

この1行で「オーバーロードの解決に失敗しました。」
引数はあってると思うのですが・・・
パンダ
会議室デビュー日: 2003/01/31
投稿数: 8
投稿日時: 2003-02-03 15:35
パンダです。

オーバーロードのエラーは下記のコードで解決しました。

e.Graphics.DrawString(StringToPrint, New Font("MS UI Gothic", 10), Brushes.Black, 120, 120)
と描画位置を設定して解決しました。

しかし
>dim text as string = "test" <-DataGridからテキスト作成

DataGridからのテキストの取得が分かりません。
1行なら取得できるのですが、複数行データがある場合はどうすればよいのでしょうか?
ループ?

まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-02-03 15:59
すみません、調べている間に大分解決されていたようですね(汗)。

私はWeb専門の為Windows側のコードまではよく知らないのですが、
DataGridの行数を取得して、その行数分ループさせてテキスト取得は如何でしょうか?
一度には取得できなかったと思います。
(もしその方法があれば私もご教授願いたいです。)

#ところで、ここでの行はDataGridの行の話であって、テキストの行じゃないですよね?

[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-02-03 16:02 ]
パンダ
会議室デビュー日: 2003/01/31
投稿数: 8
投稿日時: 2003-02-03 16:51
パンダです。

>DataGridの行数を取得して、その行数分ループさせてテキスト取得は如何でしょうか?
>一度には取得できなかったと思います。

やっぱ一度に取得は出来ないんでしょうかね?
一行だけならDataSet1.Items(0,0)で取れました。
これをループで行うとなると・・・??

>#ところで、ここでの行はDataGridの行の話であって、テキストの行じゃないですよね?

そうです。DataGrid(DataSet)の行です。
DataSetを使っているので一度に取得できそうなのですが。
う〜ん(難)。

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