⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bomsinglemform.frm

📁 即时通讯
💻 FRM
📖 第 1 页 / 共 5 页
字号:
'                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 + -