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