📄 bom.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "Bom"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Dim m_HwbmA As Hwbm
Dim m_HwbmC As Hwbm
Dim m_BomKey As Integer
Dim m_Bom_Id As Integer
Dim m_BomA_HwbmNo As Double
Dim m_BomA_HwbmCode As String
Dim m_BomA_HwbmMc As String
Dim m_BomItem As Integer
Dim m_BomC_HwbmNo As Double
Dim m_BomC_HwbmCode As String
Dim m_BomC_HwbmMc As String
Dim m_Bom_HwDwCode As String
Dim m_BomQty As Double
Dim m_BomShl As Double
Dim m_BomBz As String
Dim m_BomLevel As Integer
Dim m_BomNo As Double
Public Property Get Name() As String
Name = "Bom"
End Property
Private Sub Class_Initialize()
m_Bom_Id = -1
End Sub
Public Property Get HwbmA() As Hwbm
If m_HwbmA Is Nothing Then
Set m_HwbmA = New Hwbm
If m_BomA_HwbmCode <> "" Then
m_HwbmA.Requery m_BomA_HwbmCode
End If
End If
Set HwbmA = m_HwbmA
End Property
Public Property Get HwbmC() As Hwbm
If m_HwbmC Is Nothing Then
Set m_HwbmC = New Hwbm
If m_BomC_HwbmCode <> "" Then
m_HwbmC.Requery m_BomC_HwbmCode
End If
End If
Set HwbmC = m_HwbmC
End Property
Public Property Get BomKey() As Integer
BomKey = m_BomKey
End Property
Public Property Let BomKey(vBomKey As Integer)
m_BomKey = vBomKey
End Property
Public Property Get Bom_Id() As Integer
Bom_Id = m_Bom_Id
End Property
Public Property Let Bom_Id(vBom_Id As Integer)
m_Bom_Id = vBom_Id
End Property
Public Property Get BomLevel() As Integer
BomLevel = m_BomLevel
End Property
Public Property Get BomA_HwbmNo() As Double
BomA_HwbmNo = m_BomA_HwbmNo
End Property
Public Property Get BomA_HwbmCode() As String
BomA_HwbmCode = m_BomA_HwbmCode
End Property
Public Property Get BomA_HwbmMc() As String
BomA_HwbmMc = m_BomA_HwbmMc
End Property
Public Property Get BomItem() As Integer
BomItem = m_BomItem
End Property
Public Property Get BomC_HwbmNo() As Double
BomC_HwbmNo = m_BomC_HwbmNo
End Property
Public Property Get BomC_HwbmCode() As String
BomC_HwbmCode = m_BomC_HwbmCode
End Property
Public Property Get BomC_HwbmMc() As String
BomC_HwbmMc = m_BomC_HwbmMc
End Property
Public Property Get Bom_HwDwCode() As String
Bom_HwDwCode = m_Bom_HwDwCode
End Property
Public Property Get BomQty() As Double
BomQty = m_BomQty
End Property
Public Property Get BomShl() As Double
BomShl = m_BomShl
End Property
Public Property Get BomBz() As String
BomBz = m_BomBz
End Property
Public Property Get BomNo() As Double
BomNo = m_BomNo
End Property
Public Property Let BomA_HwbmCode(vBomA_HwbmCode As String)
If Trim(vBomA_HwbmCode) = "" Then
Err.Raise vbObjectError + 1, , "加工件号不能为空"
Exit Property
End If
If Trim(vBomA_HwbmCode) <> Trim(m_BomA_HwbmCode) Then
If HwbmA.Requery(vBomA_HwbmCode) = -1 Then
Err.Raise vbObjectError + 1, , "无加工件号:" + vBomA_HwbmCode
Exit Property
End If
End If
m_BomA_HwbmNo = HwbmA.HwBmNo
m_BomA_HwbmMc = HwbmA.HwBmMc
m_BomA_HwbmCode = vBomA_HwbmCode
End Property
Public Property Let BomItem(vBomItem As Integer)
m_BomItem = vBomItem
End Property
Public Property Let BomC_HwbmCode(vBomC_HwbmCode As String)
If Trim(vBomC_HwbmCode) = "" Then
Err.Raise vbObjectError + 1, , "部件号不能为空"
Exit Property
End If
If m_BomA_HwbmCode <> "" Then
If vBomC_HwbmCode = m_BomA_HwbmCode Then
Err.Raise vbObjectError + 1, , "部件号不能和组装件号相同"
Exit Property
End If
End If
If m_BomC_HwbmCode <> vBomC_HwbmCode Then
If HwbmC.Requery(vBomC_HwbmCode) = -1 Then
Err.Raise vbObjectError + 1, , "无部件编号:" + vBomC_HwbmCode
Exit Property
End If
End If
m_BomC_HwbmNo = HwbmC.HwBmNo
m_BomC_HwbmMc = HwbmC.HwBmMc
m_Bom_HwDwCode = HwbmC.HwBm_HwDwCode
m_BomC_HwbmCode = vBomC_HwbmCode
End Property
Public Property Let BomQty(vBomQty As Double)
If vBomQty < 0 Then
Err.Raise vbObjectError + 1, , "单位用量不能小于零!"
Exit Property
End If
m_BomQty = vBomQty
End Property
Public Property Let BomShl(vBomShl As Double)
If vBomShl < 0 Or vBomShl >= 1 Then
Err.Raise vbObjectError + 1, , "损耗率不能小于0或大于等于1"
Exit Property
End If
m_BomShl = vBomShl
End Property
Public Property Let BomBz(vBomBz As String)
m_BomBz = vBomBz
End Property
Public Sub Save()
Dim Cmd As ADODB.Command
On Error GoTo ErrorHandle
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = gDbCommon.Conn
If m_Bom_Id = -1 Then
Cmd.CommandText = gPublicFunction.GetCallSPString("BOMREC_INSERT", 7)
Cmd(0) = m_BomA_HwbmNo
Cmd(1) = m_BomItem
Cmd(2) = m_BomC_HwbmNo
Cmd(3) = m_BomQty
Cmd(4) = m_BomShl
Cmd(5) = m_BomBz
Cmd(6).Direction = adParamOutput
Else
Cmd.CommandText = gPublicFunction.GetCallSPString("bomrec_update", 6)
Cmd(0) = m_BomNo
Cmd(1) = m_BomItem
Cmd(2) = m_BomC_HwbmNo
Cmd(3) = m_BomQty
Cmd(4) = m_BomShl
Cmd(5) = m_BomBz
End If
Cmd.Execute
If m_Bom_Id = -1 Then
m_Bom_Id = 1
m_BomNo = Cmd(6)
End If
Set Cmd = Nothing
Exit Sub
ErrorHandle:
Set Cmd = Nothing
Err.Raise vbObjectError + 1, , gDbCommon.Conn.Errors(0)
End Sub
Public Sub Del()
Dim Cmd As ADODB.Command
On Error GoTo ErrorHandle
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = gDbCommon.Conn
Cmd.CommandText = "{call bomrec_delete(?)}"
Cmd(0) = m_BomNo
gDbCommon.Conn.BeginTrans
Cmd.Execute
gDbCommon.Conn.CommitTrans
Set Cmd = Nothing
Exit Sub
ErrorHandle:
Set Cmd = Nothing
gDbCommon.Conn.RollbackTrans
Err.Raise vbObjectError + 1, , gDbCommon.Conn.Errors(0)
End Sub
Public Sub BatchLet(ParamArray Properties())
m_BomLevel = Properties(0)
m_BomA_HwbmNo = Properties(1)
m_BomA_HwbmCode = Properties(2)
m_BomA_HwbmMc = Properties(3)
m_BomItem = Properties(4)
m_BomC_HwbmNo = Properties(5)
m_BomC_HwbmCode = Properties(6)
m_BomC_HwbmMc = Properties(7)
m_Bom_HwDwCode = Properties(8)
m_BomQty = Properties(9)
m_BomShl = Properties(10)
m_BomBz = Properties(11)
m_BomNo = Properties(12)
m_Bom_Id = 1
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -