List 7-208 FormBillフォームのBTN_PRINT_Clickプロシージャ
1: Private Sub BTN_PRINT_Click()
2: ' [印刷]ボタンが押されたときの処理
3: Dim oldBookMark As Variant, bmk As Variant
4: Dim sendflag As VbMsgBoxResult
5: Dim objBill As Business.Bill
6:
7: ' プリンタがなければ,エラーメッセージを表示する
8: If Printers.Count = 0 Then
9: MsgBox "プリンタがインストールされていません", _
vbOKOnly, "印刷エラー"
10: End If
11:
12: ' 印刷方法を選択させる
13: FormPrintSelect.Show 1
14:
15: ' 印刷後に送付ずみとするかどうかを尋ねる
16: If FormPrintSelect.Selected = 2 Or _
FormPrintSelect.Selected = 3 Then
17: sendflag = MsgBox("印刷後に送付ずみとしますか", _
vbYesNo, "印刷の確認")
18: On Error GoTo ErrHandle
19: Set objBill = CreateObject("Business.Bill")
20: End If
21:
22: Select Case FormPrintSelect.Selected
23: Case 1
24: ' 表示されている表を印刷ならびにプレビュー
25: FormPrintPreview.SetTitle "請求書一覧", DGrid_Bill
26: FormPrintPreview.Show 1
27: Case 2
28: ' 表内のすべての項目の明細を一括印刷
29: Printer.ScaleMode = vbTwips
30: FormPrinting.bCancelFlag = False
31: FormPrinting.Show 0
32:
33: oldBookMark = g_objRec.BookMark
34: g_objRec.MoveFirst
35: Do While Not g_objRec.EOF
36: FormBillDetail.InitData g_objRec.Fields("ID").Value
37: FormPrintPreview.SetTitle2 FormBillDetail.FRAME_BILL, _
FormBillDetail.FLXGrid_SlipDetail
38: If FormPrintPreview.DrawPreview(Printer, 1, 65535) < 0 Then
39: MsgBox "印刷が中断されました", vbOKOnly, "印刷エラー"
40: Exit Do
41: End If
42: ' 送付ずみとする
43: If sendflag = vbYes And _
g_objRec.Fields("SENDBILLFLAG").Value = False Then
44: objBill.SendBill g_objRec.Fields("ID").Value
45: End If
46: g_objRec.MoveNext
47: Loop
48: FormPrinting.Hide
49:
50: ' データグリッドの内容を更新する
51: RefreshData
52:
53: On Error Resume Next
54: g_objRec.BookMark = oldBookMark
55: Case 3
56: ' 表内の選択されている項目の明細を一括印刷
57: Printer.ScaleMode = vbTwips
58: FormPrinting.bCancelFlag = False
59: FormPrinting.Show 0
60:
61: oldBookMark = g_objRec.BookMark
62:
63: For Each bmk In DGrid_Bill.SelBookmarks
64: g_objRec.BookMark = bmk
65:
66: FormBillDetail.InitData g_objRec.Fields("ID").Value
67: FormPrintPreview.SetTitle2 FormBillDetail.FRAME_BILL, _
FormBillDetail.FLXGrid_SlipDetail
68: If FormPrintPreview.DrawPreview(Printer, 1, 65535) < 0 Then
69: MsgBox "印刷が中断されました", vbOKOnly, "印刷エラー"
70: Exit For
71: End If
72:
73: ' 送付ずみとする
74: If sendflag = vbYes And g_objRec.Fields("SENDBILLFLAG").Value = False Then
75: objBill.SendBill g_objRec.Fields("ID").Value
76: End If
77: g_objRec.MoveNext
78: Next
80: FormPrinting.Hide
81:
82: ' データグリッドの内容を更新する
83: RefreshData
84:
85: On Error Resume Next
86: g_objRec.BookMark = oldBookMark
87: End Select
88:
89:
90: Set objBill = Nothing
91: Exit Sub
92:
93: ErrHandle:
94: MsgBox Err.descriotion, vbOKOnly, "印刷エラー"
95: FormPrinting.Hide
96: Set objBill = Nothing
97: End Sub