List 6-79 Business.ProductコンポーネントのGetStorageメソッド
  1: Public Sub GetStorage(ByVal StockID As Long, _
                           ByRef WillDate As Variant, _
                           ByRef DUEDATE As Variant, _
                           ByRef CONFIRMEDFLAG As Variant, _
                           ByRef ProductID As Variant, _
                           ByRef NUMBER As Variant, _
                           ByRef MEMO As Variant, _
                           ByRef SLIPID As Variant, _
                           ByRef MADEUSER As Variant, _
                           ByRef MADEDATE As Variant, _
                           ByRef LASTUSER As Variant, _
                           ByRef LASTDATE As Variant)
  2:     ' 在庫情報テーブル中の指定された入庫または出庫の予定を返す
  3:     ' 【引数】
  4:     '   StockID = 取得したいレコードを特定するレコードID(IDフィールドの値)を指定する
  5:     '   WillDate = 指定されたレコードの入庫または出庫予定日が格納される
  6:     '   DUEDATE = 指定されたレコードの入庫または出庫が施行された日時が格納される
  7:     '   CONFIRMEDFLAG = 指定されたレコードが施行されたかどうかのフラグが格納される
  8:     '   PRODUCTID = 指定されたレコードが指し示している製品の製品番号が格納される
  9:     '   NUMBER = 指定されたレコードが指し示している製品の入庫または出庫数が格納される
 10:     '   MEMO = 指定されたレコードの摘要が格納される
 11:     '   SLIPID = 指定されたレコードに結びつけられている伝票の伝票番号が格納される
 12:     '   MADEUSER = 指定されたレコードを作成したユーザー名が格納される
 13:     '   MADEDATE = 指定されたレコードが作成された日時が格納される
 14:     '   LASTUSER = 指定されたレコードの最終更新ユーザー名が格納される
 15:     '   LASTDATE = 指定されたレコードの最終更新日時が格納される
 16:     ' 【戻り値】
 17:     '   なし
 18:     Dim objContext As ObjectContext
 19:     Dim objDataStock As DataObj.STOCK
 20:     
 21:     ' オブジェクトコンテキストの取得
 22:     Set objContext = GetObjectContext()
 23:     
 24:     ' エラーハンドラの設定
 25:     On Error GoTo ErrHandle
 26:     
 27:     ' DataObj.Stockコンポーネントの実体化
 28:     Set objDataStock = CreateObject("DataObj.Stock")
 29:     
 30:     ' 削除ずみであるかどうか
 31:     If objDataStock.IsDeleted(StockID) = ID_Deleted Then
 32:         ' 削除ずみである
 33:         ' セキュリティ機能が有効か
 34:         If Not objContext.IsSecurityEnabled() Then
 35:             Err.Raise BusinessError.Err_NOSECURE, App.Title, _
                           "セキュリティ機構が無効です"
 36:         End If
 37:         ' ProductsAdminロールまたはAllAdminロールに属しているか
 38:         If Not (objContext.IsCallerInRole("ProductsAdmin") Or _
                       objContext.IsCallerInRole("AllAdmin")) Then
 39:             ' 属していない
 40:             Err.Raise Errorcode.Err_NOTFOUND, _
                           App.Title, "指定された入庫または出庫予定が見つかりません"
 41:         End If
 42:     End If
 43:     
 44:     ' レコードの取得
 45:     objDataStock.GetRecord StockID, WillDate, DUEDATE, CONFIRMEDFLAG, _
                                ProductID, NUMBER, MEMO, SLIPID, _
                                MADEUSER, MADEDATE, LASTUSER, LASTDATE
 46:     
 47:     ' DataObj.Stockの解放
 48:     Set objDataStock = Nothing
 49:     
 50:     ' コミットする
 51:     objContext.SetComplete
 52:     
 53:     ' オブジェクトコンテキストの解放
 54:     Set objContext = Nothing
 55:     
 56:     Exit Sub
 57: 
 58: ErrHandle:
 59:     ' エラーハンドラ
 60:     objContext.SetAbort
 61:     Set objContext = Nothing
 62:     Set objDataStock = Nothing
 63:      
 64:      ' エラーの再発行
 65:     Err.Raise Err.NUMBER, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 66: End Sub