List 6-141 Business.SlipコンポーネントのUndeleteSlipメソッド
1: Public Sub UndeleteSlip(ByVal SlipID As Long)
2: ' 指定された伝票を復活する
3: ' 【引数】
4: ' SlipID = 復活したい伝票の伝票番号
5: Dim objContext As ObjectContext
6: Dim objDataSlip As DataObj.Slip
7: Dim objDataCustomer As DataObj.Customer
8: Dim old_CUSTOMERID As Variant, old_SUBTOTAL As Variant, old_TAX As Variant
9: Dim old_TOTAL As Variant, old_MADEDATE As Variant, old_MADEUSER As Variant
10: Dim old_LASTUSER As Variant, old_LASTDATE As Variant
11:
12: ' オブジェクトコンテキストの取得
13: Set objContext = GetObjectContext()
14:
15: ' エラーハンドラの設定
16: On Error GoTo ErrHandle
17:
18: ' DataObj.Slipコンポーネントの実体化
19: Set objDataSlip = CreateObject("DataObj.Slip")
20:
21: ' その時点の伝票の情報を取得
22: objDataSlip.GetRecord_Slip SlipID, old_CUSTOMERID, _
old_SUBTOTAL, old_TAX, old_TOTAL, _
old_MADEDATE, old_MADEUSER, _
old_LASTDATE, old_LASTUSER
23:
24: ' DataObj.Customerコンポーネントの実体化
25: Set objDataCustomer = CreateObject("DataObj.Customer")
26: ' 復活したときに伝票の対象となる顧客が存在することを確認
27: If objDataCustomer.IsDeleted(old_CUSTOMERID) <> ID_Exists Then
28: Err.Raise BusinessError.ERR_CANTACCESS, App.Title, _
"対象となる顧客がすでに削除されているため復活できません"
29: End If
30:
31: ' DELETEDFLAGフィールドの値をFalseに設定し,復活させる
32: objDataSlip.SetDeletedFlag SlipID, False
33:
34: ' DataObj.Slip,DataObj.Customerを解放
35: Set objDataSlip = Nothing
36: Set objDataCustomer = Nothing
37:
38: ' トランザクションのコミット
39: objContext.SetComplete
40: ' オブジェクトコンテキストの解放
41: Set objContext = Nothing
42:
43: Exit Sub
44:
45: ErrHandle:
46: ' エラーハンドラ
47: objContext.SetAbort
48: Set objContext = Nothing
49: Set objDataSlip = Nothing
50: Set objDataCustomer = Nothing
51:
52: ' エラーの再発行
53: Err.Raise Err.NUMBER, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
54: End Sub