印刷機能を追加する
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を渡して印刷するようにも変更可能なので、ぜひチャンレジしてみてください。