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

📄 productschemedao.cls

📁 即时通讯
💻 CLS
📖 第 1 页 / 共 3 页
字号:
                                processno As Integer, _
                                parentMaterial As String) As Boolean
    
    Dim cmdProc As ADODB.Command          ' 执行存储过程的命令
    
    SetPsMaterialProcessNo = False
    Set cmdProc = New ADODB.Command
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "productScheme_material_setProcessNo"          ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
    cmdProc.Parameters(1) = psMaterialId              ' 参数
    cmdProc.Parameters(2) = processno                 ' 参数
    cmdProc.Parameters(3) = parentMaterial            ' 参数
    
    ' 执行命令 把查询到的结果放在recSet中
    MainForm.g_application.m_databaseCon.m_adoConnection.BeginTrans    ' 开始事务
    
    On Error GoTo Cwcl
    
    cmdProc.Execute
    SetPsMaterialProcessNo = True

    MainForm.g_application.m_databaseCon.m_adoConnection.CommitTrans   ' 结束事务
    Exit Function
    
Cwcl:
    MainForm.g_application.m_databaseCon.m_adoConnection.RollbackTrans   ' 回滚事务
    SetPsMaterialProcessNo = False
End Function
'**************************************
'*    功 能 描 述 :根据生产计划单编号找到生产计划单物料清单
'*    输 入 参 数 :psId  -  生产计划单编号
'*                 bomId -  Bom ID
'*    输 出 能 数 :True           -  成功
'*                 False          -  失败
'**************************************
Public Function FindSchemeMaterialByPsidBomId(recSet As ADODB.Recordset, _
                              psId As String, _
                              bomId As String) As Boolean
    
    Dim cmdProc As ADODB.Command          ' 执行存储过程的命令
    
    FindSchemeMaterialByPsidBomId = False
    Set cmdProc = New ADODB.Command
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "productScheme_material_findByPsBomId"     ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
    cmdProc.Parameters(1) = psId                ' 参数
    cmdProc.Parameters(2) = bomId               ' 参数
    
    On Error GoTo Cwcl
    
    ' 执行命令 把查询到的结果放在recSet中
    With recSet
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open cmdProc
    End With
    
    With recSet
        If Not .EOF Then
            FindSchemeMaterialByPsidBomId = True
        Else
            FindSchemeMaterialByPsidBomId = False
        End If
    End With
    
    Exit Function
    
Cwcl:
    FindSchemeMaterialByPsidBomId = False
    Exit Function
End Function
'**************************************
'*    功 能 描 述 :设置生产计划单的状态
'*    输 入 参 数 :无
'*    输 出 能 数 :True           -  成功
'*                 False          -  失败
'**************************************
Public Function SetProductSchemeState(recSet As ADODB.Recordset, _
                                state As String, _
                                schemeId As String) As Boolean
    
    Dim cmdProc As ADODB.Command          ' 执行存储过程的命令
    
    SetProductSchemeState = False
    Set cmdProc = New ADODB.Command
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "productScheme_modify_setState"          ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
    cmdProc.Parameters(1) = state                    ' 参数
    cmdProc.Parameters(2) = schemeId                 ' 参数
    
    ' 执行命令 把查询到的结果放在recSet中
    MainForm.g_application.m_databaseCon.m_adoConnection.BeginTrans    ' 开始事务
    
    On Error GoTo Cwcl
    
    cmdProc.Execute
    SetProductSchemeState = True

    MainForm.g_application.m_databaseCon.m_adoConnection.CommitTrans   ' 结束事务
    Exit Function
    
Cwcl:
    MainForm.g_application.m_databaseCon.m_adoConnection.RollbackTrans   ' 回滚事务
    SetProductSchemeState = False
End Function
'**************************************
'*    功 能 描 述 :取得一种物料库存可用数量
'*                 当前计划用量    (库存量  - 已计划但还未完成的数量 = 库存可用数量)
'*    输 入 参 数 :materialId  -  物料的ID
'*    输 出 能 数 :库存中可以使用的数量
'**************************************
Public Function GetPositionUsableNum(materialId As String) As Double
    Dim usableNum As Double       ' 库存中可以使用的数量
    Dim requirement As Double     ' 现在生产的总需求的数量
    Dim positionNum As Double     ' 当前的库存量
    Dim recSet As ADODB.Recordset ' 存放数据库查询结果的数据集
    Dim cmdProc As ADODB.Command  ' 取需求数量的命令
    Dim positionCmd As ADODB.Command    ' 取当前库存量的命令
    
    Dim qualityNum As Double      ' 生产计划单中的数量
    Dim hadOutNum  As Double      ' 已领出去生产的数量
    
    GetPositionUsableNum = 0
    
    Set recSet = New ADODB.Recordset  ' ps_material_findNotFinish_ByMaterialId
    Set cmdProc = New ADODB.Command
    Set positionCmd = New ADODB.Command
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    Set positionCmd.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "ps_material_findNotFinish_ByMaterialId"     ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
    cmdProc.Parameters(1) = materialId             ' 参数
    
    ' 执行查找库存数量的存储过程的命令的设置
    positionCmd.CommandText = "ps_material_findPositionNum"     ' 指定存储过程的名子
    positionCmd.CommandType = adCmdStoredProc
    positionCmd.Parameters.Refresh
    positionCmd.Parameters(1) = materialId             ' 参数
    
    On Error GoTo Cwcl
    
    ' 执行命令 把查询到的结果放在recSet中
    With recSet
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open cmdProc
    End With
    
    With recSet
        If Not .EOF Then
            If (Trim(.Fields("sumQuantity") & " ") = "") Then
                qualityNum = 0
            Else
                qualityNum = CDbl(.Fields("sumQuantity"))
            End If
            
            If (Trim(.Fields("hadOutNum") & " ") = "") Then
                hadOutNum = 0
            Else
                hadOutNum = CDbl(.Fields("hadOutNum"))
            End If
            
            requirement = qualityNum - hadOutNum
        Else
            requirement = 0
        End If
    End With
    recSet.Close      ' 关闭数据集
    
    ' 查找库存数量
    With recSet
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open positionCmd                ' 查找库存数量
    End With
    
    With recSet
        If Not .EOF Then
            positionNum = CDbl(.Fields("quantitySum"))
        Else
            positionNum = 0
        End If
    End With
    recSet.Close      ' 关闭数据集
    
    usableNum = positionNum - requirement
    If usableNum > 0 Then
        GetPositionUsableNum = usableNum
    Else
        GetPositionUsableNum = 0
    End If
    
    Exit Function
    
Cwcl:
    Exit Function
    
End Function


'**************************************
'*    功 能 描 述 :生产单的总数量和已下单的数量
'*    输 入 参 数 :无
'*    输 出 能 数 :True           -  成功
'*                 False          -  失败
'**************************************
Public Function ps_material_findquantity(recSet As ADODB.Recordset, _
                              psMaterialId As String) As Boolean
    
    Dim cmdProc As ADODB.Command          ' 执行存储过程的命令
    
    ps_material_findquantity = False
    Set cmdProc = New ADODB.Command
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "ps_material_findquantity"     ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
    cmdProc.Parameters(1) = psMaterialId             ' 参数
    
    On Error GoTo Cwcl
    
    ' 执行命令 把查询到的结果放在recSet中
    With recSet
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open cmdProc
    End With
    
    With recSet
        If Not .EOF Then
            ps_material_findquantity = True
        Else
            ps_material_findquantity = False
        End If
    End With
    
    Exit Function
    
Cwcl:
    ps_material_findquantity = False
    Exit Function
End Function
'**************************************
'*    功 能 描 述 :查询取得所有生产计划单的列表
'*    输 入 参 数 :queryType   -  0 查找设计中的计划单
'*                                1
'*    输 出 能 数 :True           -  成功
'*                 False          -  失败
'**************************************
Public Function productScheme_findByIdList(recSet As ADODB.Recordset) As Boolean
    
    Dim cmdProc As ADODB.Command          ' 执行存储过程的命令
    
    productScheme_findByIdList = False
    Set cmdProc = New ADODB.Command
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "productScheme_findByIdList"     ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
'    cmdProc.Parameters(1) = queryType             ' 参数
    
    On Error GoTo Cwcl
    
    ' 执行命令 把查询到的结果放在recSet中
    With recSet
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open cmdProc
    End With
    
    With recSet
        If Not .EOF Then
            productScheme_findByIdList = True
        Else
            productScheme_findByIdList = False
        End If
    End With
    
    Exit Function
    
Cwcl:
    productScheme_findByIdList = False
    Exit Function
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -