clsDispose.cls
Upload User: czxfzx
Upload Date: 2015-02-25
Package Size: 749k
Code Size: 9k
Development Platform:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "clsDispose"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. Option Explicit
  17. Private mvarID As Long              '报损编号
  18. Private mvarMerchandiseID As Long   '商品ID
  19. Private mvarMerchName As String     '商品名称
  20. Private mvarRegDate As Date         '登记日期
  21. Private mvarCount As Long           '报损数量
  22. Private mvarReason As String        '报损原因
  23. Private mvarRemark As String        '备注
  24. Private mvarOperatorId As String    '操作员Id
  25. Private mvarTypeId As Long          '类型ID
  26. '以下供分析用
  27. Private mvarRegTimes As Long        '登记次数
  28. Private mvarTotalCount As Long      '报损总数量
  29. Private mvarTypeName As String      '商品类型名
  30. Public Property Let TypeName(ByVal vData As String)
  31. '向属性指派值时使用,位于赋值语句的左边。
  32. 'Syntax: X.TypeName = 5
  33.     mvarTypeName = vData
  34. End Property
  35. Public Property Get TypeName() As String
  36. '检索属性值时使用,位于赋值语句的右边。
  37. 'Syntax: Debug.Print X.TypeName
  38.     TypeName = mvarTypeName
  39. End Property
  40. Public Property Let TotalCount(ByVal vData As Long)
  41. '向属性指派值时使用,位于赋值语句的左边。
  42. 'Syntax: X.TotalCount = 5
  43.     mvarTotalCount = vData
  44. End Property
  45. Public Property Get TotalCount() As Long
  46. '检索属性值时使用,位于赋值语句的右边。
  47. 'Syntax: Debug.Print X.TotalCount
  48.     TotalCount = mvarTotalCount
  49. End Property
  50. Public Property Let RegTimes(ByVal vData As Long)
  51. '向属性指派值时使用,位于赋值语句的左边。
  52. 'Syntax: X.RegTimes = 5
  53.     mvarRegTimes = vData
  54. End Property
  55. Public Property Get RegTimes() As Long
  56. '检索属性值时使用,位于赋值语句的右边。
  57. 'Syntax: Debug.Print X.RegTimes
  58.     RegTimes = mvarRegTimes
  59. End Property
  60. Public Property Let MerchName(ByVal vData As String)
  61. '向属性指派值时使用,位于赋值语句的左边。
  62. 'Syntax: X.MerchName = 5
  63.     mvarMerchName = vData
  64. End Property
  65. Public Property Get MerchName() As String
  66. '检索属性值时使用,位于赋值语句的右边。
  67. 'Syntax: Debug.Print X.MerchName
  68.     MerchName = mvarMerchName
  69. End Property
  70. Public Property Let TypeId(ByVal vData As Long)
  71. '向属性指派值时使用,位于赋值语句的左边。
  72. 'Syntax: X.TypeId = 5
  73.     mvarTypeId = vData
  74. End Property
  75. Public Property Get TypeId() As Long
  76. '检索属性值时使用,位于赋值语句的右边。
  77. 'Syntax: Debug.Print X.TypeId
  78.     TypeId = mvarTypeId
  79. End Property
  80. Public Property Let OperatorId(ByVal vData As String)
  81. '向属性指派值时使用,位于赋值语句的左边。
  82. 'Syntax: X.OperatorId = 5
  83.     mvarOperatorId = vData
  84. End Property
  85. Public Property Get OperatorId() As String
  86. '检索属性值时使用,位于赋值语句的右边。
  87. 'Syntax: Debug.Print X.OperatorId
  88.     OperatorId = mvarOperatorId
  89. End Property
  90. Public Property Let Remark(ByVal vData As String)
  91. '向属性指派值时使用,位于赋值语句的左边。
  92. 'Syntax: X.Remark = 5
  93.     mvarRemark = vData
  94. End Property
  95. Public Property Get Remark() As String
  96. '检索属性值时使用,位于赋值语句的右边。
  97. 'Syntax: Debug.Print X.Remark
  98.     Remark = mvarRemark
  99. End Property
  100. Public Property Let Reason(ByVal vData As String)
  101. '向属性指派值时使用,位于赋值语句的左边。
  102. 'Syntax: X.Reason = 5
  103.     mvarReason = vData
  104. End Property
  105. Public Property Get Reason() As String
  106. '检索属性值时使用,位于赋值语句的右边。
  107. 'Syntax: Debug.Print X.Reason
  108.     Reason = mvarReason
  109. End Property
  110. Public Property Let Count(ByVal vData As Long)
  111. '向属性指派值时使用,位于赋值语句的左边。
  112. 'Syntax: X.Count = 5
  113.     mvarCount = vData
  114. End Property
  115. Public Property Get Count() As Long
  116. '检索属性值时使用,位于赋值语句的右边。
  117. 'Syntax: Debug.Print X.Count
  118.     Count = mvarCount
  119. End Property
  120. Public Property Let RegDate(ByVal vData As Date)
  121. '向属性指派值时使用,位于赋值语句的左边。
  122. 'Syntax: X.RegDate = 5
  123.     mvarRegDate = vData
  124. End Property
  125. Public Property Get RegDate() As Date
  126. '检索属性值时使用,位于赋值语句的右边。
  127. 'Syntax: Debug.Print X.RegDate
  128.     RegDate = mvarRegDate
  129. End Property
  130. Public Property Let MerchandiseID(ByVal vData As Long)
  131. '向属性指派值时使用,位于赋值语句的左边。
  132. 'Syntax: X.MerchandiseID = 5
  133.     mvarMerchandiseID = vData
  134. End Property
  135. Public Property Get MerchandiseID() As Long
  136. '检索属性值时使用,位于赋值语句的右边。
  137. 'Syntax: Debug.Print X.MerchandiseID
  138.     MerchandiseID = mvarMerchandiseID
  139. End Property
  140. Public Property Let ID(ByVal vData As Long)
  141. '向属性指派值时使用,位于赋值语句的左边。
  142. 'Syntax: X.ID = 5
  143.     mvarID = vData
  144. End Property
  145. Public Property Get ID() As Long
  146. '检索属性值时使用,位于赋值语句的右边。
  147. 'Syntax: Debug.Print X.ID
  148.     ID = mvarID
  149. End Property
  150. Public Function AddNew() As gxcAddNew
  151.   Dim strSQL As String
  152.   
  153.   '用来获取对应商品的信息,以便更新库存
  154.   Dim obj As clsMerch
  155.   Dim objs As New clsMerchs
  156.   Dim rstObjs As clsMerchs
  157.   Set rstObjs = objs.Find(Me.MerchandiseID)
  158.   If rstObjs Is Nothing Then
  159.     AddNew = AddNewFail
  160.     Exit Function
  161.   End If
  162.   Set obj = rstObjs.Item(1)
  163.   g_Conn.BeginTrans
  164.   strSQL = "INSERT INTO Dispose(D_MerchandiseID_N, D_RegDate_D, "
  165.   strSQL = strSQL & " D_Count_N, D_Reason_S, D_OperatorId_S, D_Remark_R) "
  166.   strSQL = strSQL & " VALUES("
  167.   strSQL = strSQL & Me.MerchandiseID       '商品名称
  168.   strSQL = strSQL & ",'" & Me.RegDate & "'"   '商品介绍
  169.   strSQL = strSQL & "," & Me.Count       '商品类型ID
  170.   strSQL = strSQL & ",'" & Me.Reason & "'"      '商品类型ID
  171.   strSQL = strSQL & ",'" & Me.OperatorId & "'"      '商品类型ID
  172.   strSQL = strSQL & ",'" & Me.Remark & "'"     '备注
  173.   strSQL = strSQL & ")"
  174.   
  175.   '执行SQL语句,
  176.   g_Conn.Execute strSQL
  177.   
  178.   '更新库存
  179.   obj.Storage = obj.Storage - Me.Count
  180.   obj.Update
  181.   
  182.   '提交事务
  183.   g_Conn.CommitTrans
  184.   
  185.   '如果发生错误,则返回FALSE,表示未成功添加
  186.   If Err.Number = 0 Then
  187.     Me.ID = MaxID("Dispose", "D_ID_N")
  188.     AddNew = AddNewOK
  189.   Else
  190.     AddNew = AddNewFail
  191.   End If
  192.   
  193. End Function
  194. Public Function Update() As gxcUpdate
  195.   Dim strSQL As String
  196.   
  197.   '通过ID判断是否存在该记录,即该记录是否被其它商品端删除
  198.   '如果不存在该记录,则返回相应的操作结果给调用者
  199.   If Not ExistByID("Dispose", "D_ID_N", Me.ID) Then
  200.     Update = RecordNotExist
  201.     Exit Function
  202.   End If
  203.   
  204.   '用来获取对应商品的信息,以便更新库存
  205.   Dim obj As clsMerch
  206.   Dim objs As New clsMerchs
  207.   Dim rstObjs As clsMerchs
  208.   Set rstObjs = objs.Find(Me.MerchandiseID)
  209.   If rstObjs Is Nothing Then
  210.     Update = UpdateFail
  211.     Exit Function
  212.   End If
  213.   Set obj = rstObjs.Item(1)
  214.   
  215.   '获取原来的进货量
  216.   Dim preCnt As Long
  217.   preCnt = Val(GetValueByID("Dispose", "D_ID_N", Me.ID, "D_Count_N"))
  218.   g_Conn.BeginTrans
  219.   
  220.   '构造SQL语句,注意需调用RealString函数去除字符串中的单引号
  221.   strSQL = "Update Dispose SET "
  222.   strSQL = strSQL & "D_MerchandiseID_N=" & Me.MerchandiseID & ","
  223.   strSQL = strSQL & "D_RegDate_D='" & Me.RegDate & "',"
  224.   strSQL = strSQL & "D_Count_N=" & Me.Count & ","
  225.   strSQL = strSQL & "D_Reason_S='" & Me.Reason & "',"
  226.   strSQL = strSQL & "D_OperatorId_S='" & Me.OperatorId & "',"
  227.   strSQL = strSQL & "D_Remark_R='" & Me.Remark & "' "
  228.   strSQL = strSQL & " WHERE D_ID_N=" & Me.ID
  229.   
  230.   '执行SQL语句,
  231.   g_Conn.Execute strSQL
  232.   
  233.   '更新库存
  234.   obj.Storage = obj.Storage - (Me.Count - preCnt)
  235.   obj.Update
  236.   
  237.   '提交事务
  238.   g_Conn.CommitTrans
  239.   
  240.   '根据是否出错,返回给调用者相应的信息
  241.   Update = IIf(Err.Number = 0, UpdateOK, UpdateFail)
  242. End Function
  243. Public Function Delete(Optional lngID As Long = -1) As gxcDelete
  244.   Dim strSQL As String
  245.   
  246.   '如果调用该函数时传入了ID,则更新该对象的ID
  247.   If lngID <> -1 Then Me.ID = lngID
  248.   
  249.   '用来获取对应商品的信息,以便更新库存
  250.   Dim obj As clsMerch
  251.   Dim objs As New clsMerchs
  252.   Dim rstObjs As clsMerchs
  253.   Set rstObjs = objs.Find(Me.MerchandiseID)
  254.   If rstObjs Is Nothing Then
  255.     Delete = DeleteFail
  256.     Exit Function
  257.   End If
  258.   Set obj = rstObjs.Item(1)
  259.   
  260.   '获取原来的进货量
  261.   Dim preCnt As Long
  262.   preCnt = Val(GetValueByID("Dispose", "D_ID_N", Me.ID, "D_Count_N"))
  263.   g_Conn.BeginTrans
  264.   
  265.   '执行删除操作并返回操作结果
  266.   strSQL = "DELETE FROM Dispose "
  267.   strSQL = strSQL & " WHERE D_ID_N=" & Me.ID
  268.   
  269.   '执行SQL语句,
  270.   g_Conn.Execute strSQL
  271.   
  272.   '更新库存
  273.   obj.Storage = obj.Storage + preCnt
  274.   obj.Update
  275.   
  276.   '提交事务
  277.   g_Conn.CommitTrans
  278.   
  279.   Delete = IIf(Err.Number = 0, DeleteOK, DeleteFail)
  280.   
  281. End Function
  282. Public Function DeleteEx() As gxcDelete
  283.   DeleteEx = Delete(Me.ID)
  284. End Function