List 6-106 DataObj.SlipコンポーネントのGet_SlipStatusメソッド
1: Public Function Get_SlipStatus(ByVal SlipID As Long) As SlipStatus
2: ' その時点における伝票の状態を返す
3: ' 【引数】
4: ' SlipID = 状態を調べたい伝票の伝票番号
5: ' 【戻り値】
6: ' その時点における伝票の状態。SlipStatus列挙型のいずれかの値
7: Dim objContext As ObjectContext
8: Dim objRec As ADODB.Recordset
9:
10: ' オブジェクトコンテキストの取得
11: Set objContext = GetObjectContext()
12:
13: ' エラーハンドラの設定
14: On Error GoTo ErrHandle
15:
16: ' 指定された伝票番号に相当する伝票を取得
17: Set objRec = CreateObject("ADODB.Recordset")
18: objRec.Open "SELECT REQ_CONSENTFLAG, CONSENTEDFLAG, REJECTEDFLAG, " & _
"SENDFLAG, ACCOUNTINGFLAG, MADEBILLFLAG FROM 伝票情報" & _
" WHERE ID=" & SlipID, _
19: g_DBConnection, adOpenForwardOnly, adLockReadOnly, adCmdText
20:
21: If objRec.EOF Then
22: Err.Raise Errorcode.Err_NOTFOUND, App.Title, _
"指定された伝票番号を持つ伝票が見つかりません"
23: End If
24:
25: ' 伝票の状態を調査
26: If objRec.Fields("MADEBILLFLAG").Value Then
27: ' 請求書作成ずみ
28: Get_SlipStatus = Finish
29: ElseIf objRec.Fields("ACCOUNTINGFLAG").Value Then
30: ' 経理確認ずみ
31: Get_SlipStatus = Accounted
32: ElseIf objRec.Fields("SENDFLAG").Value Then
33: ' 発送ずみ
34: Get_SlipStatus = Send
35: ElseIf objRec.Fields("CONSENTEDFLAG").Value Then
36: ' 承認ずみ
37: Get_SlipStatus = Consented
38: ElseIf objRec.Fields("REJECTEDFLAG").Value Then
39: ' 却下
40: Get_SlipStatus = Rejected
41: ElseIf objRec.Fields("REQ_CONSENTFLAG").Value Then
42: ' 承認依頼中
43: Get_SlipStatus = RequestingConsent
44: Else
45: ' 伝票作成中
46: Get_SlipStatus = Creating
47: End If
48:
49: ' データベースとの接続を閉じてレコードセットを解放
50: objRec.Close
51: Set objRec = Nothing
52:
53: ' トランザクションをコミット
54: objContext.SetComplete
55:
56: ' オブジェクトコンテキストの解放
57: Set objContext = Nothing
58:
59: Exit Function
60:
61: ErrHandle:
62: ' エラーハンドラ
63: objContext.SetAbort
64:
65: Set objContext = Nothing
66: Set objRec = Nothing
67:
68: Get_SlipStatus = Unknown
69:
70: ' エラーの再発行
71: Err.Raise Err.NUMBER, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
72: End Function