📄 productschemedao.cls
字号:
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 + -