📄 bomsinglemform.frm
字号:
' HFG_detail.TextMatrix(currentrow, 2) = Trim(.Fields("processName"))
' HFG_detail.TextMatrix(currentrow, 3) = Trim(.Fields("fee"))
' HFG_detail.TextMatrix(currentrow, 4) = Trim(.Fields("bomCost"))
' HFG_detail.TextMatrix(currentrow, 5) = Trim(.Fields("quantity")) ' 明细的数量
' HFG_detail.TextMatrix(currentrow, 6) = Trim(.Fields("description"))
' HFG_detail.TextMatrix(currentrow, 7) = Trim(.Fields("bomId")) ' 当为空时为新增BOM表,不空为修改
' HFG_detail.TextMatrix(currentrow, 8) = Trim(.Fields("bomDetailId")) ' 当为空时 - 新增明细(非根结点情况) 当不空时 - 修改明细(数量)
' HFG_detail.TextMatrix(currentrow, 9) = Trim(.Fields("materialType")) ' 0-原料 1-零件 2-产品
' HFG_detail.TextMatrix(currentrow, 10) = Trim(.Fields("materialId"))
' '<<]
' '设置数据行高度(Fixed)
' HFG_detail.RowHeight(currentrow) = 200
'
' If Trim(.Fields("bomId")) = Trim(Node.Tag) Then ' 要选中此行记录
' HFG_detail.row = currentrow
' HFG_detail.RowSel = currentrow
' End If
' '动态集指针加1,同时将计数器加1(Fixed)
' .MoveNext
' currentrow = currentrow + 1
' Loop
' End With
' ListToTextbox
' End If
' ListToTextbox
' m_recordset.Close
End Sub
'**************************************
'* 功 能 描 述 :在当前根结点的基础上新增根结点,则当前的根结点变成了新根结点的子结点
'* 输 入 参 数 :无
'* 输 出 能 数 :无
'**************************************
Private Sub m_newFirstBom_Click()
'
' Dim s As String
' If m_currentLevel < 1 Then ' 当前正在编辑根结点,不能加入更多的行
' MainForm.g_msgText = "你现在正在建立根BOM,再建新的根结点!"
' HMsgBox MainForm.g_msgText, 0, 1
' Else
' CreateLastNode
' TV_bomManage.Nodes.Item(1).Parent = TV_bomManage.Nodes.Item(2)
' End If
End Sub
'**************************************
'* 功 能 描 述 :新增列表框中的行
'* 输 入 参 数 :无
'* 输 出 能 数 :无
'**************************************
Private Sub m_newRow_Click()
' 只有当当前选中的节点的父节点是产品时才能建立多个明细,其它的则不能建立多个明细
If m_currentLevel <= 1 Then ' 当前正在编辑根结点,不能加入更多的行
MainForm.g_msgText = "你现在正在建立根BOM,不能新建多行!"
HMsgBox MainForm.g_msgText, 0, 1
Else
If m_parentBom.materialType = 2 Then
HFG_detail.AddItem ""
m_detailRowCount = m_detailRowCount + 1
Else
MainForm.g_msgText = "当前节点的父节点不是产品,不能新建多行!"
HMsgBox MainForm.g_msgText, 0, 1
End If
End If
End Sub
'**************************************
'* 功 能 描 述 :用户选择产品
'* 输 入 参 数 :无
'* 输 出 能 数 :无
'**************************************
Private Sub m_selectBom_Click()
Dim ret As Boolean
' 选择一种BOM
Dim qf As New QueryFom
qf.m_currentQuery = QUERY_BOM
qf.show vbModal
Set qf = Nothing
' 如果此原料已有BOM记录,则调出些条BOM的信息
ret = m_bomDAO.FindById(m_recordset, _
MainForm.g_application.m_queryResultId)
If ret Then ' 找到了BOM记录
' 把选择的原料的BOM资料读出来显示在界面
With m_recordset
HFG_detail.TextMatrix(HFG_detail.row, 0) = "Y"
HFG_detail.TextMatrix(HFG_detail.row, 1) = Trim(.Fields("name"))
HFG_detail.TextMatrix(HFG_detail.row, 2) = Trim(.Fields("processName"))
HFG_detail.TextMatrix(HFG_detail.row, 3) = Trim(.Fields("fee"))
HFG_detail.TextMatrix(HFG_detail.row, 4) = Trim(.Fields("bomCost"))
' HFG_detail.TextMatrix(HFG_detail.Row, 5) = "数量" ' 明细的数量
HFG_detail.TextMatrix(HFG_detail.row, 6) = Trim(.Fields("description"))
HFG_detail.TextMatrix(HFG_detail.row, 7) = Trim(.Fields("bomId")) ' 当为空时为新增BOM表,不空为修改
' HFG_detail.TextMatrix(HFG_detail.Row, 8) = "" ' 当为空时 - 新增明细(非根结点情况) 当不空时 - 修改明细(数量)
HFG_detail.TextMatrix(HFG_detail.row, 9) = Trim(.Fields("materialType")) ' 0-原料 1-零件 2-产品
HFG_detail.TextMatrix(HFG_detail.row, 10) = Trim(.Fields("materialId"))
HFG_detail.TextMatrix(HFG_detail.row, 11) = Trim(.Fields("relatePartId") & " ") ' 相关零件
If Trim(.Fields("materialType")) = "1" Then ' 如果是零件的BOM则相关零件是其本身
HFG_detail.TextMatrix(HFG_detail.row, 11) = Trim(.Fields("materialId"))
End If
End With
m_recordset.Close
ListToTextbox
Else
m_recordset.Close
End If
End Sub
Private Sub m_selectGoods_Click()
Dim ret As Boolean
' 选择一种原料
Dim qf As New QueryFom
qf.m_currentQuery = QUERY_GOODS
qf.show vbModal
Set qf = Nothing
' 如果此原料已有BOM记录,则调出些条BOM的信息
ret = m_bomDAO.FindByMaterial(m_recordset, _
MainForm.g_application.m_queryResultId, _
"0")
If ret Then ' 找到了BOM记录
' 如果原来的BOM工序则把工序记录删除
If Trim(HFG_detail.TextMatrix(HFG_detail.row, 7)) <> "" And _
Trim(HFG_detail.TextMatrix(HFG_detail.row, 9)) = "3" Then
m_bomDAO.DeleteBom m_recordset, Trim(HFG_detail.TextMatrix(HFG_detail.row, 7))
End If
' 把选择的原料的BOM资料读出来显示在界面
With m_recordset
HFG_detail.TextMatrix(HFG_detail.row, 0) = "Y"
HFG_detail.TextMatrix(HFG_detail.row, 1) = Trim(.Fields("name"))
HFG_detail.TextMatrix(HFG_detail.row, 2) = Trim(.Fields("processName"))
HFG_detail.TextMatrix(HFG_detail.row, 3) = Trim(.Fields("fee"))
HFG_detail.TextMatrix(HFG_detail.row, 4) = Trim(.Fields("bomCost"))
' HFG_detail.TextMatrix(HFG_detail.Row, 5) = "数量" ' 明细的数量
HFG_detail.TextMatrix(HFG_detail.row, 6) = Trim(.Fields("description"))
HFG_detail.TextMatrix(HFG_detail.row, 7) = Trim(.Fields("bomId")) ' 当为空时为新增BOM表,不空为修改
' HFG_detail.TextMatrix(HFG_detail.Row, 8) = "" ' 当为空时 - 新增明细(非根结点情况) 当不空时 - 修改明细(数量)
HFG_detail.TextMatrix(HFG_detail.row, 9) = "0" ' 0-原料 1-零件 2-产品
HFG_detail.TextMatrix(HFG_detail.row, 10) = _
MainForm.g_application.m_queryResultId
HFG_detail.TextMatrix(HFG_detail.row, 11) = Trim(m_parentBom.relatePartId) ' 相关零件
End With
m_recordset.Close
Else ' 没找到BOM记录 ,查找物料记录
m_recordset.Close
ret = m_bomDAO.FindMaterial(m_recordset, _
MainForm.g_application.m_queryResultId, _
"0")
If ret Then
' 把选择的原料的资料读出来显示在界面
With m_recordset
HFG_detail.TextMatrix(HFG_detail.row, 0) = "Y"
HFG_detail.TextMatrix(HFG_detail.row, 1) = Trim(.Fields("materialName"))
HFG_detail.TextMatrix(HFG_detail.row, 2) = Trim("")
HFG_detail.TextMatrix(HFG_detail.row, 3) = Trim("0")
HFG_detail.TextMatrix(HFG_detail.row, 4) = Trim("0")
' HFG_detail.TextMatrix(HFG_detail.Row, 5) = "数量" ' 明细的数量
HFG_detail.TextMatrix(HFG_detail.row, 6) = Trim("")
HFG_detail.TextMatrix(HFG_detail.row, 7) = Trim("") ' 当为空时为新增BOM表,不空为修改
' HFG_detail.TextMatrix(HFG_detail.Row, 8) = "" ' 当为空时 - 新增明细(非根结点情况) 当不空时 - 修改明细(数量)
HFG_detail.TextMatrix(HFG_detail.row, 9) = "0" ' 0-原料 1-零件 2-产品
HFG_detail.TextMatrix(HFG_detail.row, 10) = _
MainForm.g_application.m_queryResultId
HFG_detail.TextMatrix(HFG_detail.row, 11) = Trim(m_parentBom.relatePartId) ' 相关零件
End With
End If
m_recordset.Close
End If
ListToTextbox
T_ProcessName.Enabled = True
End Sub
Private Sub m_selectPart_Click()
' 选择一种零件
Dim qf As New QueryFom
qf.m_currentQuery = QUERY_PART
qf.show vbModal
Set qf = Nothing
SelectedPart ' 调用选择零件的处理函数
End Sub
'**************************************
'* 功 能 描 述 :当用户选选项择一个零件时的处理函数
'* 输 入 参 数 :无
'* 输 出 能 数 :无
'**************************************
Private Function SelectedPart()
Dim ret As Boolean
If ExistInList(MainForm.g_application.m_queryResultId) Then
MainForm.g_msgText = "此物料已在列表中,请选择其它物料!"
HMsgBox MainForm.g_msgText, 0, 1
Exit Function
End If
' 如果此原料已有BOM记录,则调出些条BOM的信息
ret = m_bomDAO.FindByMaterial(m_recordset, _
MainForm.g_application.m_queryResultId, _
"1")
If ret Then ' 找到了BOM记录
' 把选择的原料的BOM资料读出来显示在界面
With m_recordset
HFG_detail.TextMatrix(HFG_detail.row, 0) = "Y"
HFG_detail.TextMatrix(HFG_detail.row, 1) = Trim(.Fields("name"))
HFG_detail.TextMatrix(HFG_detail.row, 2) = Trim(.Fields("processName"))
HFG_detail.TextMatrix(HFG_detail.row, 3) = Trim(.Fields("fee"))
HFG_detail.TextMatrix(HFG_detail.row, 4) = Trim(.Fields("bomCost"))
' HFG_detail.TextMatrix(HFG_detail.Row, 5) = "数量" ' 明细的数量
HFG_detail.TextMatrix(HFG_detail.row, 6) = Trim(.Fields("description"))
HFG_detail.TextMatrix(HFG_detail.row, 7) = Trim(.Fields("bomId")) ' 当为空时为新增BOM表,不空为修改
' HFG_detail.TextMatrix(HFG_detail.Row, 8) = "" ' 当为空时 - 新增明细(非根结点情况) 当不空时 - 修改明细(数量)
HFG_detail.TextMatrix(HFG_detail.row, 9) = "1" ' 0-原料 1-零件 2-产品
HFG_detail.TextMatrix(HFG_detail.row, 10) = _
MainForm.g_application.m_queryResultId
HFG_detail.TextMatrix(HFG_detail.row, 11) = _
MainForm.g_application.m_queryResultId
End With
m_recordset.Close
If m_currentLevel = 0 Or m_currentLevel = 1 Then ' 如果当前为根结点,则把零件的节点放入树中
C_modify_Click ' 显示产品的BOM树
End If
Else ' 没找到BOM记录 ,查找物料记录
m_recordset.Close
ret = m_bomDAO.FindMaterial(m_recordset, _
MainForm.g_application.m_queryResultId, _
"1")
If ret Then
' 把选择的原料的资料读出来显示在界面
With m_recordset
HFG_detail.TextMatrix(HFG_detail.row, 0) = "Y"
HFG_detail.TextMatrix(HFG_detail.row, 1) = Trim(.Fields("materialName"))
HFG_detail.TextMatrix(HFG_detail.row, 2) = Trim("")
HFG_detail.TextMatrix(HFG_detail.row, 3) = Trim("0")
HFG_detail.TextMatrix(HFG_detail.row, 4) = Trim("0")
' HFG_detail.TextMatrix(HFG_detail.Row, 5) = "数量" ' 明细的数量
HFG_detail.TextMatrix(HFG_detail.row, 6) = Trim("")
HFG_detail.TextMatrix(HFG_detail.row, 7) = Trim("") ' 当为空时为新增BOM表,不空为修改
' HFG_detail.TextMatrix(HFG_detail.Row, 8) = "" ' 当为空时 - 新增明细(非根结点情况) 当不空时 - 修改明细(数量)
HFG_detail.TextMatrix(HFG_detail.row, 9) = "1" ' 0-原料 1-零件 2-产品
HFG_detail.TextMatrix(HFG_detail.row, 10) = _
MainForm.g_application.m_queryResultId
HFG_detail.TextMatrix(HFG_detail.row, 11) = _
MainForm.g_application.m_queryResultId
End With
End If
m_recordset.Close
End If
ListToTextbox
T_ProcessName.Enabled = True
End Function
'**************************************
'* 功 能 描 述 :选择工序
'* 输 入 参 数 :无
'* 输 出 能 数 :无
'**************************************
Private Sub m_selectProcess_Click()
Dim ret As Boolean
Dim bomprocessid As String ' 工序的编号
Dim bomName As String ' 工序名称
Dim bpDao As bomprocessDAO ' BOM工序表数据库操作类
Set bpDao = New bomprocessDAO
Dim qf As New QueryFom
qf.m_currentQuery = QUERY_BOMPROCESS
qf.show vbModal
Set qf = Nothing
' 如果此原料已有BOM记录,则调出些条BOM的信息
ret = bpDao.Findbomprocess(m_recordset, _
MainForm.g_application.m_queryResultId)
If ret Then
' 取工序ID
If Trim(HFG_detail.TextMatrix(HFG_detail.row, 9)) = "3" Then ' 如果所在行原业就是工序,则取出原来的工序编号
If Trim(HFG_detail.TextMatrix(HFG_detail.row, 10)) <> "" Then ' 如果不为空则取出
bomprocessid = Trim(HFG_detail.TextMatrix(HFG_detail.row, 10))
Else ' 如果为空则新取一个工序ID
bomprocessid = NewId()
End If
Else ' 如果原来不是工序则新取一个工序ID
bomprocessid = NewId()
End If
' 零件名称和工序名称 零件名称=父零件名+工序名
If m_parentBom.materialType = "1" Then ' 当父节点为零件时
bomName = m_parentBom.name + Trim(m_recordset.Fields("工序名称"))
End If
If m_parentBom.materialType = "3" Then ' 当父节点为工序时
bomName = Left(m_parentBom.name, Len(m_parentBom.name) - Len(m_parentBom.processName)) _
+ Trim(m_recordset.Fields("工序名称"))
End If
With m_recordset '将查询到的记录传到列表显示
If Trim(HFG_detail.TextMatrix(HFG_detail.row, 9)) = "3" Then ' 如果所在行原业就是工序
HFG_detail.TextMatrix(HFG_detail.row, 0) = "Y"
HFG_detail.TextMatrix(HFG_detail.row, 1) = bomName
HFG_detail.TextMatrix(HFG_detail.row, 2) = Trim(.Fields("工序名称"))
HFG_detail.TextMatrix(HFG_detail.row, 3) = Trim("0")
HFG_detail.TextMatrix(HFG_detail.row, 4) = Trim("0")
' HFG_detail.TextMatrix(HFG_detail.Row, 5) = "数量" ' 明细的数量
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -