List 7-177 変更したFormSlipフォームのBTN_PRINT_Clickプロシージャ


  1: Private Sub BTN_PRINT_Click()
  2:     ' [印刷]ボタンが押されたときの処理
  3:     Dim oldBookMark As Variant, bmk As Variant
  4:     ' プリンタがなければ,エラーメッセージを表示する
  5:     If Printers.Count = 0 Then
  6:         MsgBox "プリンタがインストールされていません", _
                    vbOKOnly, "印刷エラー"
  7:     End If
  8:     
  9:     ' 印刷方法を選択させる
 10:     FormPrintSelect.Show 1
 11:     
 12:     Select Case FormPrintSelect.Selected
 13:         Case 1
 14:             ' 表示されている表を印刷ならびにプレビュー
 15:             FormPrintPreview.SetTitle "伝票一覧", DGrid_Slip
 16:             FormPrintPreview.Show 1
 17:         Case 2
 18:             ' 表内のすべての項目の明細を一括印刷
 19:             Printer.ScaleMode = vbTwips
 20:             FormPrinting.bCancelFlag = False
 21:             FormPrinting.Show 0
 22:             
 23:             oldBookMark = g_objRec.BookMark
 24:             g_objRec.MoveFirst
 25:             Do While Not g_objRec.EOF
 26:                 FormSlipDetail.InitData g_objRec.Fields("ID").Value
 27:                 FormPrintPreview.SetTitle2 FormSlipDetail.FRAME_SLIP, _
                                                FormSlipDetail.FLXGrid_SlipDetail
 28:                 If FormPrintPreview.DrawPreview(Printer, 1, 65535) < 0 Then
 29:                     MsgBox "印刷が中断されました", vbOKOnly, "印刷エラー"
 30:                     Exit Do
 31:                 End If
 32:                 g_objRec.MoveNext
 33:             Loop
 34:             FormPrinting.Hide
 35:             On Error Resume Next
 36:             g_objRec.BookMark = oldBookMark
 37:         Case 3
 38:             ' 表内の選択されている項目の明細を一括印刷
 39:             Printer.ScaleMode = vbTwips
 40:             FormPrinting.bCancelFlag = False
 41:             FormPrinting.Show 0
 42:             
 43:             oldBookMark = g_objRec.BookMark
 44: 
 45:             For Each bmk In DGrid_Slip.SelBookmarks
 46:                 g_objRec.BookMark = bmk
 47:                 
 48:                 FormSlipDetail.InitData g_objRec.Fields("ID").Value
 49:                 FormPrintPreview.SetTitle2 FormSlipDetail.FRAME_SLIP, _
                                                FormSlipDetail.FLXGrid_SlipDetail
 50:                 If FormPrintPreview.DrawPreview(Printer, 1, 65535) < 0 Then
 51:                     MsgBox "印刷が中断されました", vbOKOnly, "印刷エラー"
 52:                     Exit For
 53:                 End If
 54:             Next
 55:             FormPrinting.Hide
 56:             On Error Resume Next
 57:             g_objRec.BookMark = oldBookMark
 58:     End Select
 59: End Sub