いつもお世話になっております。
現在VB.netより、帳票出力するアプリを作成しています。そこで質問なのですが
CrystalReportを利用して出力しようと考えているのですが、Viewerの印刷ボタ
ンを使わずに、ボタンをマウスクリックして直接印刷する方法はありますでしょ
うか?
製造業の現場内でタッチパネルで使用するため、CrystalReportViewerに付属の
印刷ボタンでは小さすぎる為、大きくしたボタンを使用したいのです。
現在、画像を印刷するサンプルを元にプログラムをコネまわしているのですが、
「PrintDocument1_PrintPage」がわの制御が理解できていません。
どなたか、アドバイスいただけると助かります。
よろしくお願いいたします。
'##################################################################
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'PrintDocumentオブジェクトの作成
Dim pd As New System.Drawing.Printing.PrintDocument
'PrintPageイベントハンドラの追加
AddHandler pd.PrintPage, AddressOf PrintDocument1_PrintPage
'印刷を開始する
pd.Print()
End Sub
Private Sub PrintDocument1_PrintPage(ByVal senderAsSystem.Object,
ByVal e As System.Drawing.Printing.PrintPageEventArgs)
Handles PrintDocument1.PrintPage
'画像を読み込む
Dim img As Image = Image.FromFile("aaa")
'画像を描画する
e.Graphics.DrawImage(img, e.MarginBounds)
'次のページがないことを通知する
e.HasMorePages = False
'後始末をする
img.Dispose()
End Sub
'##############################################################
環境:Windows2000 / VB.net2003
じゃんぬねっと様、ありがとうございました。
何とか希望する動作を実現できましたm(_ _)m
ところで、CrystalReportについて書かれた参考書(VB.net用)を見ていて思っ
たのですが、GUIでサーバプロバイダなどを利用した、データベースの接続方法し
かないのでしょうか?紹介されていた方法の中に、プログラムで接続する方法は
なかったのですが、実際、出来ないのでしょうか?
先ほど、接続先をテスト用のデータベースから、本番用に変更したところ、Crys
talReportのオブジェクトが消えてしまいました。(ToT)
こんにちは、じゃんぬねっと です。
先ほどは「挨拶」も「説明」もなしに投稿して申し訳ありませんでした。
(間違えて送信しちゃったんですが、訂正レスするのに迷いましてそのままでした)
> プログラムで接続する方法はなかったのですが、実際、出来ないのでしょうか?
本来は、Dataset を生成して Report の DataSource にバインディングするべきでしょうね。
>先ほどは「挨拶」も「説明」もなしに投稿して申し訳ありませんでした。
いえいえ、すばやいアドバイスにメチャクチャ感謝しておりますm(_ _)m
実際、じゃんぬねっと様のアドバイスのおかげで、本日中に求めた答えを得る事
ができました。(^^;
>本来は、Dataset を生成して Report の DataSource にバインディングするべき
Form等と同じやり方でOKということでしょうか?
。。。ということは、データを生成するタイミングはCreateReport時という事?
。。。。。。。。。。うぅ、またこのままでは質問攻めになってしまう。
じゃんぬねっと様のおかげで、プログラムでも接続できるとわかりましたので、
また自分なりに調べて、また立ち往生したらやってきます。
ありがとうございました!
ツイート | ![]() |