📄 结算价格.frm
字号:
Private Sub treStyle_LostFocus()
If Me.treStyle.Nodes.count > 0 Then
Me.treStyle.Nodes(NodeKey).Selected = True
End If
End Sub
Public Sub AddNew()
Dim objEO As U8FDEso.EntityObject
Dim objSettlePriceBI As New U8FDBso.clsSettlePriceBI
On Error GoTo lblHandle
'1、申请权限
'初始化实体对象
Set objEO = objSettlePriceBI.Init(g_sDataSourceName, m_conBIStyle)
'----用于备份
If Not m_EO Is Nothing Then Set m_OldEO = m_EO.Clone(U8FDEso.esoStructureAndData)
Set m_EO = objEO
m_EO.State = U8FDEso.esoAddNew
Set objEO = Nothing
Set objSettlePriceBI = Nothing
'----设置界面(值和状态)
SetUI
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Public Sub Edit(Optional OID As U8FDEso.OIDObject)
Dim objSettlePriceBI As New U8FDBso.clsSettlePriceBI
Dim objLockMgr As New U8FDMgr.LockManager
Dim objEO As U8FDEso.EntityObject
On Error GoTo lblHandle
'----申请权限
'----
If Not OID Is Nothing Then
Set m_EO = objSettlePriceBI.MoveTo(g_sDataSourceName, U8FDEso.esoCurrent, m_conBIStyle, OID)
End If
'----锁定实体对象
If m_EO.OID <> "" Then
objLockMgr.LockIt g_sDataSourceName, m_EO.OID, zjLogInfo.cUserName, ComputerName
'----用于备份
Set m_OldEO = m_EO.Clone(U8FDEso.esoStructureAndData)
m_EO.State = U8FDEso.esoEdit
Else
Set objEO = objSettlePriceBI.Init(g_sDataSourceName, m_conBIStyle)
Set m_OldEO = m_EO.Clone(U8FDEso.esoStructureAndData)
Set m_EO = objEO
m_EO.State = U8FDEso.esoAddNew
End If
Set objSettlePriceBI = Nothing
Set objLockMgr = Nothing
Set objEO = Nothing
'----设置界面
SetUI
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Public Sub AddCol()
Dim objSettlePriceBI As New U8FDBso.clsSettlePriceBI
Dim objLockMgr As New U8FDMgr.LockManager
Dim objEO As U8FDEso.EntityObject
On Error GoTo lblHandle
'----申请权限
If Len(NodeKey) > 15 Then
m_EO.OID = objSettlePriceBI.FindByCode(g_sDataSourceName, mID(Me.treStyle.Nodes(NodeKey).Parent.key, 2)).OID
End If
'----锁定实体对象
If m_EO.OID <> "" Then
objLockMgr.LockIt g_sDataSourceName, m_EO.OID, zjLogInfo.cUserName, ComputerName
'----用于备份
Set m_OldEO = m_EO.Clone(U8FDEso.esoStructureAndData)
m_EO.State = U8FDEso.esoEdit
Else
Set objEO = objSettlePriceBI.FindByCode(g_sDataSourceName, mID(NodeKey, 2))
Set m_OldEO = m_EO.Clone(U8FDEso.esoStructureAndData)
If objEO(objEO.SourceOIDField) = "" Then
Set objEO = objSettlePriceBI.Init(g_sDataSourceName)
End If
Set m_EO = objEO
m_EO.State = U8FDEso.esoAddNew
End If
Set objSettlePriceBI = Nothing
Set objLockMgr = Nothing
Set objEO = Nothing
'----设置界面
SetUI
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Private Sub DeleteCol()
Dim objIRateBI As New U8FDBso.clsIRateBI
Dim objLockMgr As New U8FDMgr.LockManager
If MsgBox("真的要删除当前记录吗?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
On Error GoTo lblHandle
'----删除当前记录
'----锁定实体对象
objLockMgr.LockIt g_sDataSourceName, m_EO.OID, zjLogInfo.cUserName, ComputerName
'先验证这个时间是否可以删除,然后删除eo的子表集
m_EO.EOS.Delete NodeKey
If objIRateBI.Save(g_sDataSourceName, m_EO, m_conBIStyle) Then
'----解除锁定
objLockMgr.UnlockIt g_sDataSourceName, m_EO.OID
If Me.treStyle.Nodes(NodeKey).Parent.children > 1 Then
Dim NodeTemp As String
If NodeKey = Me.treStyle.Nodes(NodeKey).LastSibling.key Then
NodeTemp = Me.treStyle.Nodes(NodeKey).Previous.key
Else
NodeTemp = Me.treStyle.Nodes(NodeKey).Next.key
End If
Me.treStyle.Nodes.Remove NodeKey
NodeKey = NodeTemp
Else
Dim NodekeyTemp As String
NodekeyTemp = Me.treStyle.Nodes(NodeKey).Parent.key
Me.treStyle.Nodes.Remove NodeKey
NodeKey = NodekeyTemp
Me.treStyle.Nodes(NodeKey).Image = 3
End If
Me.treStyle.Nodes(NodeKey).Selected = True
'----设置界面
SetUI
Else
MsgBox "删除没有成功!"
End If
Set objLockMgr = Nothing
Set objIRateBI = Nothing
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Public Sub View(Optional OID As U8FDEso.OIDObject)
Dim objSettlePriceBI As New U8FDBso.clsSettlePriceBI
On Error GoTo lblHandle
'1、申请权限
'----
If Not OID Is Nothing Then
Set m_EO = objSettlePriceBI.MoveTo(g_sDataSourceName, U8FDEso.esoCurrent, m_conBIStyle, OID)
End If
'----
If m_EO Is Nothing Then
Set m_EO = objSettlePriceBI.MoveTo(g_sDataSourceName, U8FDEso.esoLast, m_conBIStyle)
End If
'----设置界面
SetUI
Set objSettlePriceBI = Nothing
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Private Function Save() As Boolean
Dim objSettlePriceBI As New U8FDBso.clsSettlePriceBI
Dim objLockMgr As New U8FDMgr.LockManager
Dim objOIDMgr As New U8FDMgr.OIDManager
Dim Child_EO As U8FDEso.EntityObject
Dim i As Long
Dim ParentKey As String
Dim NodeTemp As MSComctlLib.Node
On Error GoTo lblHandle
'----赋值
If m_EditCol = 0 Then
If Len(Me.treStyle.SelectedItem.key) > 15 Then
ParentKey = Me.treStyle.SelectedItem.Parent.key
Set NodeTemp = Me.treStyle.SelectedItem.FirstSibling
For i = 1 To Me.treStyle.SelectedItem.Parent.children
If Me.treStyle.SelectedItem.key <> NodeTemp.key And Me.treStyle.Nodes(NodeTemp.key).Text = Me.cboMoneyName.Text Then
MsgBox "该币别已设置好结算价格!", vbInformation, App.ProductName
Exit Function
End If
Set NodeTemp = NodeTemp.Next
Next
Set NodeTemp = Nothing
Else
ParentKey = Me.treStyle.SelectedItem.key
Set NodeTemp = Me.treStyle.SelectedItem.child
For i = 1 To Me.treStyle.SelectedItem.children
If Me.treStyle.SelectedItem.key <> NodeTemp.key And Me.treStyle.Nodes(NodeTemp.key).Text = Me.cboMoneyName.Text Then
MsgBox "该币别已设置好结算价格!", vbInformation, App.ProductName
Exit Function
End If
Set NodeTemp = NodeTemp.Next
Next
Set NodeTemp = Nothing
End If
ElseIf m_EditCol = 1 Then
If Len(Me.treStyle.SelectedItem.key) > 15 Then
ParentKey = Me.treStyle.SelectedItem.Parent.key
Set NodeTemp = Me.treStyle.SelectedItem.FirstSibling
For i = 1 To Me.treStyle.SelectedItem.Parent.children
If Me.treStyle.Nodes(NodeTemp.key).Text = Me.cboMoneyName.Text Then
MsgBox "该币别已设置好结算价格!", vbInformation, App.ProductName
Exit Function
End If
Set NodeTemp = NodeTemp.Next
Next
Set NodeTemp = Nothing
Else
ParentKey = Me.treStyle.SelectedItem.key
Set NodeTemp = Me.treStyle.SelectedItem.child
For i = 1 To Me.treStyle.SelectedItem.children
If Me.treStyle.Nodes(NodeTemp.key).Text = Me.cboMoneyName.Text Then
MsgBox "该币别已设置好结算价格!", vbInformation, App.ProductName
Exit Function
End If
Set NodeTemp = NodeTemp.Next
Next
Set NodeTemp = Nothing
End If
End If
If Me.txtSettleType(1).Visible = True Then
If Not IsNumeric(Me.txtSettleType(0).Text) Then
MsgBox "计提比例不能为空!", vbInformation, App.ProductName
Me.txtSettleType(0).SetFocus
Exit Function
End If
Else
If Not IsNumeric(Me.txtSettleType(0).Text) Then
MsgBox "单价不能为空!", vbInformation, App.ProductName
Me.txtSettleType(0).SetFocus
Exit Function
End If
End If
If Me.txtSettleType(1).Visible = True Then
If Not IsNumeric(Me.txtSettleType(1).Text) Then
MsgBox "计提基线不能为空!", vbInformation, App.ProductName
Me.txtSettleType(1).SetFocus
Exit Function
End If
End If
If Len(Me.treStyle.SelectedItem.key) > 15 Then
m_EO("settle_code") = mID(Me.treStyle.SelectedItem.Parent.key, 2)
Else
m_EO("settle_code") = mID(Me.treStyle.SelectedItem.key, 2)
End If
If Me.Charge(0).Value = True Then
m_EO("charge_flag") = 0
Else
m_EO("charge_flag") = 1
End If
With m_EO
If m_EO.State = U8FDEso.esoAddNew Then
Set Child_EO = objSettlePriceBI.Init(g_sDataSourceName, m_conChildBIStyle)
If Me.Charge(1).Value = True Then
Child_EO("money_name") = Me.cboMoneyName.Text
Child_EO("unitprice_mny") = Me.txtSettleType(0).Text
Child_EO("limit_mny") = Me.txtSettleType(1).Text
Child_EO("digest") = Me.txtSettleType(2).Text
Else
Child_EO("money_name") = Me.cboMoneyName.Text
Child_EO("unitprice_mny") = Me.txtSettleType(0).Text
Child_EO("limit_mny") = ""
Child_EO("digest") = Me.txtSettleType(2).Text
End If
m_EO.EOS.Append Child_EO, "K" & Child_EO.OID
ElseIf m_EO.State = U8FDEso.esoEdit Then
If m_EditCol = 0 Then
If Me.Charge(1).Value = True Then
EO.EOS(NodeKey)("money_name") = Me.cboMoneyName.Text
EO.EOS(NodeKey)("unitprice_mny") = Me.txtSettleType(0).Text
EO.EOS(NodeKey)("limit_mny") = Me.txtSettleType(1).Text
EO.EOS(NodeKey)("digest") = Me.txtSettleType(2).Text
Else
EO.EOS(NodeKey)("money_name") = Me.cboMoneyName.Text
EO.EOS(NodeKey)("unitprice_mny") = Me.txtSettleType(0).Text
EO.EOS(NodeKey)("limit_mny") = ""
EO.EOS(NodeKey)("digest") = Me.txtSettleType(2).Text
End If
ElseIf m_EditCol = 1 Then
Set Child_EO = objSettlePriceBI.Init(g_sDataSourceName, m_conChildBIStyle)
If Me.Charge(1).Value = True Then
Child_EO("money_name") = Me.cboMoneyName.Text
Child_EO("unitprice_mny") = Me.txtSettleType(0).Text
Child_EO("limit_mny") = Me.txtSettleType(1).Text
Child_EO("digest") = Me.txtSettleType(2).Text
Else
Child_EO("money_name") = Me.cboMoneyName.Text
Child_EO("unitprice_mny") = Me.txtSettleType(0).Text
Child_EO("limit_mny") = ""
Child_EO("digest") = Me.txtSettleType(2).Text
End If
m_EO.EOS.Append Child_EO, "K" & Child_EO.OID
End If
End If
End With
'----实体对象验证
If Not m_EO.Validate Then
For i = 1 To m_EO.EOS.count
m_EO.EOS.Delete 1
Next
Exit Function
End If
'----调用业务对象并保存
If objSettlePriceBI.Save(g_sDataSourceName, m_EO, m_conBIStyle) = False Then Exit Function
If m_EO.State = U8FDEso.esoAddNew Then
Me.treStyle.Nodes.Add ParentKey, tvwChild, "K" & m_EO.EOS(1)("settle_b_id"), m_EO.EOS(1)("money_name")
Me.treStyle.Nodes(ParentKey).Expanded = True
Me.treStyle.Nodes(ParentKey).Image = 2
Me.treStyle.Nodes("K" & m_EO.EOS(1)("settle_b_id")).Image = 3
Me.treStyle.Nodes("K" & m_EO.EOS(1)("settle_b_id")).Selected = True
NodeKey = "K" & m_EO.EOS(1)("settle_b_id")
ElseIf m_EO.State = U8FDEso.esoEdit Then
If m_EditCol = 0 Then '编辑
Me.treStyle.Nodes(NodeKey).Text = m_EO.EOS(NodeKey)("money_name")
ElseIf m_EditCol = 1 Then '增列
Me.treStyle.Nodes.Add ParentKey, tvwChild, "K" & m_EO.EOS(m_EO.EOS.count)("settle_b_id"), m_EO.EOS(m_EO.EOS.count)("money_name")
Me.treStyle.Nodes(ParentKey).Expanded = True
Me.treStyle.Nodes(ParentKey).Image = 2
Me.treStyle.Nodes("K" & m_EO.EOS(m_EO.EOS.count)("settle_b_id")).Image = 3
Me.treStyle.Nodes("K" & m_EO.EOS(m_EO.EOS.count)("settle_b_id")).Selected = True
NodeKey = "K" & m_EO.EOS(m_EO.EOS.count)("settle_b_id")
ElseIf m_EditCol = 2 Then '删列
Me.treStyle.Nodes.Remove NodeKey
End If
End If
'----解除锁定
If m_EO.State = U8FDEso.esoEdit Then
objLockMgr.UnlockIt g_sDataSourceName, m_EO.OID
End If
m_EO.State = U8FDEso.esoInstance
'----释放任务
Set objLockMgr = Nothing
Set objSettlePriceBI = Nothing
m_EditCol = 3
'----设置界面
SetUI
Save = True
Exit Function
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Function
Private Sub Delete()
If MsgBox("真的要删除当前记录吗?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
Dim objDataMgr As New U8FDMgr.DataManager
Dim objSettlePriceBI As New U8FDBso.clsSettlePriceBI
On Error GoTo lblHandle
'----删除当前记录
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -