List 6-86 Business.ProductコンポーネントのUndeleteStorageメソッド
  1: Public Sub UndeleteStorage(ByVal StockID As Long)
  2:     ' 指定された入庫予定レコードを復活させる
  3:     ' 【引数】
  4:     '   StockID = 復活したいレコードを特定するレコードID(IDフィールドの値)
  5:     ' 【戻り値】
  6:     '   なし
  7:     Dim objContext As ObjectContext
  8:     Dim objDataStock As DataObj.STOCK
  9:     Dim objDataProduct As DataObj.Product
 10:     Dim objDataSlip As DataObj.Slip
 11:     Dim WillDate As Variant, DUEDATE As Variant, CONFIRMEDFLAG As Variant
 12:     Dim ProductID As Variant, NUMBER As Variant, MEMO As Variant
 13:     Dim SLIPID As Variant, MADEUSER As Variant, MADEDATE As Variant
 14:     Dim LASTUSER As Variant, LASTDATE As Variant
 15:     
 16:     ' オブジェクトコンテキストの取得
 17:     Set objContext = GetObjectContext()
 18:     
 19:     ' エラーハンドラの設定
 20:     On Error GoTo ErrHandle
 21:     
 22:     ' DataObj.Stock,DataObj.Productの実体化
 23:     Set objDataStock = CreateObject("DataObj.Stock")
 24:     Set objDataProduct = CreateObject("DataObj.Product")
 25:     
 26:     ' 現在のデータを取得
 27:     objDataStock.GetRecord StockID, WillDate, DUEDATE, CONFIRMEDFLAG, _
                                ProductID, NUMBER, MEMO, SLIPID, _
                                MADEUSER, MADEDATE, LASTUSER, LASTDATE
 28:     
 29:     ' 入庫データであることを確認
 30:     If Not IsNull(SLIPID) Then
 31:         ' これは出庫用のレコード
 32:         Err.Raise BusinessError.ERR_CANTACCESS, App.Title, _
                       "出庫予定を操作することはできません"
 33:     End If
 34: 
 35:     ' 復活させたときに製品がまだ存在することを確認
 36:     If objDataProduct.IsDeleted(ProductID) <> ID_Exists Then
 37:         ' 製品がもうない
 38:         Err.Raise BusinessError.ERR_CANTACCESS, App.Title, _
                       "入庫予定が指し示す伝票がすでに削除されているため復活できません"
 39:     End If
 40:     
 41:     ' DELETEDFLAGフィールドの値をFalseに設定し,復活させる
 42:     objDataStock.SetDeletedFlag StockID, False
 43:     
 44:     ' DataObj.Stock,DataObj.Productの解放
 45:     Set objDataProduct = Nothing
 46:     Set objDataStock = Nothing
 47:     
 48:     ' コミットする
 49:     objContext.SetComplete
 50:     
 51:     ' オブジェクトコンテキストの解放
 52:     Set objContext = Nothing
 53:     
 54:     Exit Sub
 55:     
 56: ErrHandle:
 57:     ' エラーハンドラ
 58:     objContext.SetAbort
 59:     Set objContext = Nothing
 60:     Set objDataStock = Nothing
 61:     Set objDataProduct = Nothing
 62:     
 63:     ' エラーの再発行
 64:     Err.Raise Err.NUMBER, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 65: End Sub