印刷機能を追加する
ActiveReportsで作成した帳票デザインとプレビュー表示フォームの2つを、サンプル「CZ0912MultiRow」に追加します。
CZ0912_Form.vbで表示中のデータを印刷したいので、プレビュー表示フォーム(CZ0912Bound_Form.vb)のShowDialogメソッドに請求番号を渡すためのパラメータを追加して、リスト5のようなコードにします。
Public Class CZ0912Bound_Form
Private _billNo As String = String.Empty
Public Shadows Function ShowDialog(ByVal owner As Form, _
ByVal billNo As String) As DialogResult
_billNo = billNo
Return MyBase.ShowDialog(owner)
End Function
Private Sub Me_Shown(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Shown
Dim rpt As New Seikyu_Report()
Application.DoEvents()
Using _prco As New CZ0912Bound
rpt.DataSource = _prco.GetPrintRecords("admin", "", _billNo).Tables(0)
Viewer1.Document = rpt.Document
rpt.Run()
End Using
End Sub
End Class
この画面を呼び出すためのコードは、CZ0912_Form.vbに[印刷]ボタンを追加して、ボタンをクリックしたらプレビュー表示フォームを呼び出すようにします。
Private Sub Print_Button_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Print_Button.Click
Me.Cursor = Cursors.WaitCursor
Me.ToolStripStatusLabel1.Text = "印刷中"
Me.Refresh()
Try
Using _form As New CZ0912Bound_Form
_form.Showdialog(Me,Me.GcMultiRow1.ColumnHeaders(0).Cells("BillNo_Cell").Value.ToString)
End Using
Me.ToolStripStatusLabel1.Text = Now.ToString("MM/dd hh:mm:ss")
Catch ex As Exception
Me.ToolStripStatusLabel1.Text = ex.Message
Finally
Me.Cursor = Cursors.Default
End Try
End Sub
まとめ
サンプル「CZ0912MultiRow」では、事前に作成した帳票出力コードを最大限利用するために印刷時に再度mdbファイルから値を取得しています。もちろん、印刷時にはmdbファイルから取得せずに画面に表示中のDataSetを渡して印刷するようにも変更可能なので、ぜひチャンレジしてみてください。


