List 6-180 Business.BillコンポーネントのGetBillメソッド
  1: Public Sub GetBill(ByVal BillID As Long, _
                        ByRef CustomerID As Variant, ByRef STARTDATE As Variant, _
                        ByRef ENDDATE As Variant, ByRef SUBTOTAL As Variant, _
                        ByRef TAX As Variant, ByRef TOTAL As Variant, _
                        ByRef SENDBILLFLAG As Variant, _
                        ByRef PAIDFLAG As Variant, ByRef SUBMITUSER As Variant, _
                        ByRef SUBMITDATE As Variant, ByRef MEMO As Variant, _
                        ByRef MADEUSER As Variant, ByRef MADEDATE As Variant, _
                        ByRef LASTUSER As Variant, ByRef LASTDATE As Variant)
  2: 
  3:     ' 請求書情報テーブル内の指定された請求書番号の請求書情報を返す
  4:     ' 【引数】
  5:     '   BillID = 情報を読み出したい請求書の請求書番号
  6:     '   CUSTOMERID = 請求書の取引先となっている顧客番号が格納される
  7:     '   STARTDATE = 請求書の期間の開始日が格納される
  8:     '   ENDDATE = 請求書の期間の終了日が格納される
  9:     '   SUBTOAL = 請求書の小計(税抜き額)が格納される
 10:     '   TAX = 請求書の消費税額が格納される
 11:     '   TOTAL = 請求書の合計(税込み額)が格納される
 12:     '   SENDBILLFLAG = 請求書が送付ずみであればTrue,そうでなければFalseが
 13:     '                  格納される
 14:     '   PAIDFLAG = 請求書が入金ずみであればTrue,そうでなければFalseが
 15:     '              格納される
 16:     '   SUBMITUSER = 入金を確認したユーザーのアカウント名が格納される
 17:     '                未入金であればNull
 18:     '   SUBMITDATE = 請求書の入金を確認した日時が格納される
 19:     '                未入金であればNull
 20:     '   MADEUSER = 請求書を作成したユーザー名が格納される
 21:     '   MADEDATE = 請求書が作成された日時が格納される
 22:     '   LASTUSER = 請求書の最終更新ユーザー名が格納される
 23:     '   LASTDATE = 請求書の最終更新日時が格納される
 24:     ' 【戻り値】
 25:     '   なし
 26:     Dim objContext As ObjectContext
 27:     Dim objDataBill As DataObj.Bill
 28:     
 29:     ' オブジェクトコンテキストの取得
 30:     Set objContext = GetObjectContext()
 31:     
 32:     ' エラーハンドラの設定
 33:     On Error GoTo ErrHandle
 34:     
 35:     ' DataObj.Billコンポーネントの実体化
 36:     Set objDataBill = CreateObject("DataObj.Bill")
 37:     
 38:     ' セキュリティ機能が有効か否かの判定
 39:     If Not objContext.IsSecurityEnabled() Then
 40:         Err.Raise BusinessError.Err_NOSECURE, App.Title, _
                       "セキュリティ機構が無効です"
 41:     End If
 42:     
 43:     ' AccountingAdminロールまたはAllAdminロールに属しているか否かの判定
 44:     If Not (objContext.IsCallerInRole("AccountingAdmin") Or _
                 objContext.IsCallerInRole("AllAdmin")) Then
 45:         ' 属していない
 46:         ' Accountingロールに属しているか否かの判定
 47:         If Not objContext.IsCallerInRole("Accounting") Then
 48:             ' 属していない
 49:             Err.Raise BusinessError.Err_NOSECURE, App.Title, _
                           "参照権限がありません"
 50:         Else
 51:             ' 削除ずみではないことを確認
 52:             If objDataBill.Get_BillStatus(BillID) = BILL_Deleted Then
 53:                 ' 削除ずみである
 54:                 Err.Raise Errorcode.Err_NOTFOUND, App.Title, _
                               "指定された顧客番号を持つ顧客が見つかりません"
 55:             End If
 56:         End If
 57:     End If
 58:     
 59:     ' 請求書情報の取得
 60:     objDataBill.GetRecord BillID, CustomerID, STARTDATE, ENDDATE, SUBTOTAL, TAX, _
 61:                           TOTAL, SENDBILLFLAG, PAIDFLAG, SUBMITUSER, SUBMITDATE, _
 62:                           MEMO, MADEUSER, MADEDATE, LASTUSER, LASTDATE
 63:                           
 64:     ' DataObj.Billの解放
 65:     Set objDataBill = Nothing
 66:     
 67:     ' トランザクションのコミット
 68:     objContext.SetComplete
 69:     
 70:     ' オブジェクトコンテキストの解放
 71:     Set objContext = Nothing
 72:     
 73:     Exit Sub
 74:     
 75: ErrHandle:
 76:     ' エラーハンドラ
 77:     objContext.SetAbort
 78:     Set objContext = Nothing
 79:     Set objDataBill = Nothing
 80:     
 81:     ' エラーの再発行
 82:     Err.Raise Err.Number, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 83: End Sub