List 7-105 FormStockFilterフォームのSetFilterプロシージャ
1: Private OkFlag As Boolean
2:
3: Public Function SetFilter(FilterFlag As FILTER_STOCK, _
startDate As Variant, _
endDate As Variant, _
startDueDate As Variant, _
endDueDate As Variant) As Boolean
4: ' 絞り込み設定のウィンドウを表示し、設定された情報を返す
5: ' 【引数】
6: ' FilterFlag = 絞り込みの設定値。
7: ' startDate = 予定日による絞り込みの開始日
8: ' endDate = 予定日による絞り込みの終了日
9: ' startDueDate = 施行日による絞り込みの開始日
10: ' endDate = 施行日による絞り込みの終了日
11: ' いずれの引数も、メソッドから戻り、かつ、ユーザーが[OK]ボタンを押したときには
12: ' ユーザーが設定ウィンドウで設定した内容に合致するよう書き換えられる
13: ' 【戻り値】
14: ' ユーザーが[OK]ボタンを押してウィンドウを閉じたならばTrue
15: ' そうでなければFalse
16:
17: ' 現在の設定を設定のウィンドウに反映させる
18: If FilterFlag And FILTER_STOCK_OWNER Then
19: ' 自分が登録した入庫情報のみに絞る
20: CHK_OWNER.Value = 1
21: Else
22: CHK_OWNER.Value = 0
23: End If
24:
25: OPT_INOUTNOT.Value = True
26: If FilterFlag And FILTER_STOCK_INONLY Then
27: ' 入庫のみに絞る
28: OPT_INONLY.Value = True
29: End If
30: If FilterFlag And FILTER_STOCK_OUTONLY Then
31: ' 出庫のみに絞る
32: OPT_OUTONLY.Value = True
33: End If
34:
35: OPT_DUENOT.Value = True
36: If FilterFlag And FILTER_STOCK_DUEONLY Then
37: ' 施行ずみのみに絞る
38: OPT_DUEONLY.Value = True
39: End If
40: If FilterFlag And FILTER_STOCK_NODUEONLY Then
41: ' 施行まえのみに絞る
42: OPT_NODUEONLY.Value = True
43: End If
44:
45: If Not IsNull(startDate) Then
46: TXT_DATESTART.Text = FormatDateTime(startDate, vbShortDate)
47: Else
48: TXT_DATESTART.Text = ""
49: End If
50:
51: If Not IsNull(endDate) Then
52: TXT_DATEEND.Text = FormatDateTime(endDate, vbShortDate)
53: Else
54: TXT_DATEEND.Text = ""
55: End If
56:
57: If Not IsNull(startDueDate) Then
58: TXT_DUESTART.Text = FormatDateTime(startDueDate)
59: Else
60: TXT_DUESTART.Text = ""
61: End If
62:
63: If Not IsNull(endDueDate) Then
64: TXT_DUEEND.Text = FormatDateTime(endDueDate)
65: Else
66: TXT_DUEEND.Text = ""
67: End If
68:
69: ' フォームを表示する
70: OkFlag = False
71: Me.Show 1
72:
73: ' ウィンドウが閉じられたときの処理
74: If OkFlag Then
75: ' [OK]ボタンが押された
76: ' 設定ウィンドウにおいてユーザーが選択した内容を引数に反映する
77:
78: FilterFlag = FILTER_STOCK_ALL
79: If CHK_OWNER.Value = 1 Then
80: ' 自分が登録した入庫情報に絞り込む
81: FilterFlag = FilterFlag Or FILTER_STOCK_OWNER
82: End If
83: If OPT_INONLY.Value Then
84: ' 入庫のみに絞り込む
85: FilterFlag = FilterFlag Or FILTER_STOCK_INONLY
86: End If
87: If OPT_OUTONLY.Value Then
88: ' 出庫のみに絞り込む
89: FilterFlag = FilterFlag Or FILTER_STOCK_OUTONLY
90: End If
91: If OPT_DUEONLY.Value Then
92: FilterFlag = FilterFlag Or FILTER_STOCK_DUEONLY
93: End If
94: If OPT_NODUEONLY.Value Then
95: FilterFlag = FilterFlag Or FILTER_STOCK_NODUEONLY
96: End If
97:
98: If TXT_DATESTART.Text = "" Then
99: startDate = Null
100: Else
101: startDate = TXT_DATESTART.Text
102: End If
103:
104: If TXT_DATEEND.Text = "" Then
105: endDate = Null
106: Else
107: endDate = TXT_DATEEND.Text
108: End If
109:
110: If TXT_DUESTART.Text = "" Then
111: startDueDate = Null
112: Else
113: startDueDate = TXT_DUESTART.Text
114: End If
115:
116: If TXT_DUEEND.Text = "" Then
117: endDueDate = Null
118: Else
119: endDueDate = TXT_DUEEND.Text
120: End If
121:
122: End If
123:
124: ' 自分自身を閉じ、戻り値を設定して終了
125: Me.Hide
126: SetFilter = OkFlag
127: End Function