List 6-125 DataObj.SlipコンポーネントのSetTotalメソッド
1: Public Sub SetTotal(ByVal SlipID As Long, _
ByVal SUBTOTAL As Currency, _
ByVal TAX As Currency, _
ByVal TOTAL As Currency)
2: ' 指定された伝票番号を持つ伝票の
3: ' 小計,消費税,合計を設定する
4: ' 【引数】
5: ' SlipID = 設定したい伝票を特定する伝票番号
6: ' SUBTOTAL = 設定したい小計
7: ' TAX = 設定したい消費税
8: ' TOTAL = 設定したい合計
9: ' 【戻り値】
10: ' なし
11: Dim objContext As ObjectContext
12: Dim objRec As ADODB.Recordset
13: Dim userName As String, NowDate As Date
14: Dim objHistory As DataObj.History
15:
16: ' オブジェクトコンテキストの取得
17: Set objContext = GetObjectContext()
18:
19: ' エラーハンドラの設定
20: On Error GoTo ErrHandle
21:
22: ' DataObj.Historyコンポーネントの実体化
23: Set objHistory = CreateObject("DataObj.History")
24:
25: ' ユーザー名と現在の時刻を取得
26: userName = objContext.Security.GetOriginalCallerName()
27: NowDate = Now()
28:
29:
30: ' 伝票の小計,消費税,合計を設定
31: Set objRec = CreateObject("ADODB.Recordset")
32: objRec.Open "SELECT SUBTOTAL, TAX, TOTAL, LASTUSER, LASTDATE" & _
" FROM 伝票情報 WHERE ID=" & SlipID, _
g_DBConnection, adOpenKeyset, adLockPessimistic, adCmdText
33:
34: If objRec.EOF Then
35: Err.Raise Errorcode.Err_NOTFOUND, App.Title, _
"指定された伝票番号を持つ伝票が見つかりません"
36: End If
37:
38: ' レコードの値を更新
39: If objRec.Fields("SUBTOTAL").Value <> SUBTOTAL Then
40: objHistory.AddHistory "伝票情報", "SUBTOTAL", SlipID, _
objRec.Fields("SUBTOTAL").Value, SUBTOTAL
41: objRec.Fields("SUBTOTAL").Value = SUBTOTAL
42: End If
43: If objRec.Fields("TAX").Value <> TAX Then
44: objHistory.AddHistory "伝票情報", "TAX", SlipID, _
objRec.Fields("TAX").Value, TAX
45: objRec.Fields("TAX").Value = TAX
46: End If
47: If objRec.Fields("TOTAL").Value <> TOTAL Then
48: objHistory.AddHistory "伝票情報", "TOTAL", SlipID, _
objRec.Fields("TOTAL").Value, TOTAL
49: objRec.Fields("TOTAL").Value = TOTAL
50: End If
51:
52: objRec.Fields("LASTUSER").Value = userName
53: objRec.Fields("LASTDATE").Value = NowDate
54:
55: objRec.Update
56:
57: ' データベースとの接続を閉じてレコードセットを解放
58: objRec.Close
59: Set objRec = Nothing
60:
61: ' DataObj.Historyオブジェクトの解放
62: Set objHistory = Nothing
63:
64: ' トランザクションをコミット
65: objContext.SetComplete
66:
67: ' オブジェクトコンテキストの解放
68: Set objContext = Nothing
69:
70: Exit Sub
71:
72: ErrHandle:
73: ' エラーハンドラ
74: objContext.SetAbort
75:
76: Set objContext = Nothing
77: Set objRec = Nothing
78: Set objHistory = Nothing
79:
80: ' エラーの再発行
81: Err.Raise Err.NUMBER, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
82: End Sub