List 7-188 FormBillFilterフォームのSetFilterプロシージャ
1: Private OkFlag As Boolean
2:
3: Public Function SetFilter(CustomerID As Variant, Status As FILTER_BILL, _
start_MADEDATE As Variant, end_MADEDATE As Variant, _
start_SUBMITDATE As Variant, end_SUBMITDATE As Variant) As Boolean
4: ' 絞り込み条件の設定ウィンドウを表示し,設定された情報を返す
5: ' 【引数】
6: ' CustomerID = 顧客による絞り込みをするとき,絞り込む顧客番号
7: ' Status = 請求書の状態による絞り込みを設定するFILTER_BILL列挙型
8: ' start_MADEDATE = 作成日による絞り込みをするとき,その開始日
9: ' end_MADEDATE = 作成日による絞り込みをするとき,その終了日
10: ' start_SUBMIDTATE = 入金確認日による絞り込みをするとき,その開始日
11: ' end_SUBMITDATE = 入金確認日による絞り込みをするとき,その終了日
12: ' いずれの引数も,メソッドから戻り,かつ,ユーザーが[OK]ボタンを押したとき
13: ' ユーザーが設定ウィンドウで設定した内容に合致するよう書き換えられる
14: ' 【戻り値】
15: ' ユーザーが[OK]ボタンを押してウィンドウを閉じたならばTrue
16: ' そうでなければFalse
17:
18: ' その時点の状態を設定ウィンドウに反映する
19: If Status And FILTER_BILL_CREATED Then
20: CHK_CREATED.Value = 1
21: Else
22: CHK_CREATED.Value = 0
23: End If
24: If Status And FILTER_BILL_SEND Then
25: CHK_SEND.Value = 1
26: Else
27: CHK_SEND.Value = 0
28: End If
29: If Status And FILTER_BILL_PAID Then
30: CHK_PAID.Value = 1
31: Else
32: CHK_PAID.Value = 0
33: End If
34: If Status And FILTER_BILL_DELETED Then
35: CHK_DELETED.Value = 1
36: Else
37: CHK_DELETED.Value = 0
38: End If
39:
40: If Not IsNull(start_MADEDATE) Then
41: TXT_MADEDATESTART.Text = FormatDateTime(start_MADEDATE, vbShortDate)
42: Else
43: TXT_MADEDATESTART.Text = ""
44: End If
45:
46: If Not IsNull(end_MADEDATE) Then
47: TXT_MADEDATEEND.Text = FormatDateTime(end_MADEDATE, vbShortDate)
48: Else
49: TXT_MADEDATEEND.Text = ""
50: End If
51:
52: If Not IsNull(start_SUBMITDATE) Then
53: TXT_SUBMITDATESTART.Text = FormatDateTime(start_SUBMITDATE, vbShortDate)
54: Else
55: TXT_SUBMITDATESTART.Text = ""
56: End If
57:
58: If Not IsNull(end_SUBMITDATE) Then
59: TXT_SUBMITDATEEND.Text = FormatDateTime(end_SUBMITDATE, vbShortDate)
60: Else
61: TXT_SUBMITDATEEND.Text = ""
62: End If
63:
64: If Not IsNull(CustomerID) Then
65: FillCombo CLng(CustomerID)
66: CHK_CUSTOMER.Value = 1
67: COMBO_CUSTOMER.Enabled = True
68: Else
69: FillCombo -1
70: CHK_CUSTOMER.Value = 0
71: COMBO_CUSTOMER.Enabled = False
72: End If
73:
74: ' フォームを表示する
75: OkFlag = False
76: Me.Show 1
77:
78: ' ウィンドウが閉じられたときの処理
79: If OkFlag Then
80: ' [OK]ボタンが押された
81: ' 設定ウィンドウにおいてユーザーが選択した内容を引数に反映する
82:
83: Status = 0
84: If CHK_CREATED.Value = 1 Then
85: Status = Status Or FILTER_BILL_CREATED
86: End If
87: If CHK_SEND.Value = 1 Then
88: Status = Status Or FILTER_BILL_SEND
89: End If
90: If CHK_PAID.Value = 1 Then
91: Status = Status Or FILTER_BILL_SEND
92: End If
93: If CHK_DELETED.Value = 1 Then
94: Status = Status Or FILTER_BILL_DELETED
95: End If
96:
97: If TXT_MADEDATESTART.Text <> "" Then
98: start_MADEDATE = TXT_MADEDATESTART.Text
99: Else
100: start_MADEDATE = Null
101: End If
102:
103: If TXT_MADEDATEEND.Text <> "" Then
104: end_MADEDATE = TXT_MADEDATEEND.Text
105: Else
106: end_MADEDATE = Null
107: End If
108:
109: If TXT_SUBMITDATESTART.Text <> "" Then
110: start_SUBMITDATE = TXT_SUBMITDATESTART.Text
111: Else
112: start_SUBMITDATE = Null
113: End If
114:
115: If TXT_SUBMITDATEEND.Text <> "" Then
116: end_SUBMITDATE = TXT_SUBMITDATEEND.Text
117: Else
118: end_SUBMITDATE = Null
119: End If
120:
121: If CHK_CUSTOMER.Value = 1 Then
122: Dim listIndex
123: listIndex = COMBO_CUSTOMER.listIndex
124: If listIndex = -1 Then
125: MsgBox "顧客名が指定されていません。顧客による絞り込みは無視されます", _
vbOKOnly, "顧客の設定エラー"
126: CustomerID = -1
127: Else
128: CustomerID = COMBO_CUSTOMER.ItemData(listIndex)
129: End If
130: Else
131: CustomerID = Null
132: End If
133: End If
134:
135: ' 自分自身を閉じ,戻り値を設定して終了
136: Me.Hide
137: SetFilter = OkFlag
138: End Function