📄 单位定义.frm
字号:
If Len(Me.treStyle.SelectedItem.key) = 2 Then
MsgBox "不能删除单位定义类别", vbInformation + vbOKOnly
Exit Sub
End If
If MsgBox("真的要删除当前记录吗?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
'----删除当前记录
If objAccUnitBI.Delete(g_sDataSourceName, m_EO, m_conBIStyle) Then
Dim NodeTemp As String
If NodeKey = Me.treStyle.Nodes(NodeKey).LastSibling.key Then
If NodeKey = Me.treStyle.Nodes(NodeKey).FirstSibling.key Then
NodeTemp = Me.treStyle.Nodes(NodeKey).Parent.key
Else
NodeTemp = Me.treStyle.Nodes(NodeKey).Previous.key
End If
Else
NodeTemp = Me.treStyle.Nodes(NodeKey).Next.key
End If
Me.treStyle.Nodes.Remove NodeKey
NodeKey = NodeTemp
Me.treStyle.Nodes(NodeKey).Selected = True
If Me.treStyle.Nodes(NodeKey).children = 0 Then Me.treStyle.Nodes(NodeKey).Image = 3
Dim objOID As New U8FDEso.OIDObject
'----移动到下一条记录
objOID = mID(NodeKey, 3)
Set EO = objAccUnitBI.MoveTo(g_sDataSourceName, U8FDEso.esoCurrent, m_conBIStyle, objOID)
Set objOID = Nothing
SetUI
Else
MsgBox "删除没有成功!"
End If
Set objAccUnitBI = Nothing
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Private Sub CancelDo()
If Not m_EditStatus Then
If MsgBox("真的要取消当前操作吗?", vbQuestion + vbYesNo, g_conSysName) = vbNo Then Exit Sub
End If
Dim objAccUnitBI As New U8FDBso.clsAccUnitBI
Dim objLockMgr As New U8FDMgr.LockManager
On Error GoTo lblHandle
'----State 若为 esoEdit, 解锁
If m_EO.State = U8FDEso.esoEdit Then
objLockMgr.UnlockIt g_sDataSourceName, m_EO.OID
End If
Set objLockMgr = Nothing
'----恢复原实体对象
If Not m_OldEO Is Nothing Then
Set m_EO = m_OldEO.Clone(U8FDEso.esoStructureAndData)
Else
Set m_EO = objAccUnitBI.Init(g_sDataSourceName, m_conBIStyle)
End If
Set objAccUnitBI = Nothing
'----设置界面
SetUI
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Private Function Save()
Dim objAccUnitBI As New U8FDBso.clsAccUnitBI
Dim objLockMgr As New U8FDMgr.LockManager
On Error GoTo lblHandle
m_EO("accunit_code") = Me.txtCode.Text
m_EO("accunit_name") = Me.txtName.Text
m_EO("digest") = Me.txtDigest.Text
m_EO("type_flag") = Me.cboType.ListIndex
'----实体对象验证
If Not m_EO.Validate Then Exit Function
'----调用业务对象并保存
If objAccUnitBI.Save(g_sDataSourceName, m_EO, m_conBIStyle) = False Then Exit Function
Set objAccUnitBI = Nothing
'----解除锁定
If m_EO.State = U8FDEso.esoEdit Then
objLockMgr.UnlockIt g_sDataSourceName, m_EO.OID
Set objLockMgr = Nothing
End If
If m_EO.State = U8FDEso.esoAddNew Then
NodeKey = "K" & Me.cboType.ListIndex & m_EO("accunit_id")
Me.treStyle.Nodes.Add "K" & Me.cboType.ListIndex, tvwChild, NodeKey, Me.txtCode.Text
Me.treStyle.Nodes(NodeKey).Image = 3
Me.treStyle.Nodes(NodeKey).Selected = True
Me.treStyle.Nodes(NodeKey).Expanded = True
ElseIf m_EO.State = U8FDEso.esoEdit Then
Me.treStyle.Nodes.Remove NodeKey
NodeKey = "K" & Me.cboType.ListIndex & m_EO("accunit_id")
Me.treStyle.Nodes.Add "K" & Me.cboType.ListIndex, tvwChild, NodeKey, Me.txtCode.Text
Me.treStyle.Nodes(NodeKey).Image = 3
Me.treStyle.Nodes(NodeKey).Selected = True
Me.treStyle.Nodes(NodeKey).Expanded = True
End If
m_EO.State = U8FDEso.esoInstance
'----释放任务
'----设置界面
Me.treStyle.Nodes(NodeKey).Text = "【" & Me.txtCode.Text & "】" & Me.txtName.Text
SetUI
Save = True
Exit Function
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Function
Private Sub RefreshUI()
Dim objAccUnitBI As New U8FDBso.clsAccUnitBI
Dim objEO As U8FDEso.EntityObject
Dim objOID As New U8FDEso.OIDObject
Dim NodeFlag As Boolean
Dim UnitCode As String
UnitCode = Me.txtCode.Text
Me.treStyle.Nodes.clear
Me.treStyle.Nodes.Add , , "K0", "个人"
Me.treStyle.Nodes.Add , , "K1", "部门"
Me.treStyle.Nodes.Add , , "K2", "银行"
Me.treStyle.Nodes.Add , , "K3", "客户"
Me.treStyle.Nodes.Add , , "K4", "供应商"
Me.treStyle.Nodes.Add , , "K5", "项目"
Me.treStyle.LineStyle = tvwRootLines
Me.treStyle.Style = tvwTreelinesPlusMinusPictureText
Me.treStyle.LabelEdit = tvwManual
Me.treStyle.Indentation = 300
Set objEO = objAccUnitBI.MoveTo(g_sDataSourceName, U8FDEso.esoFirst, m_conBIStyle)
Dim i As Integer, RecordCount As Long
RecordCount = objAccUnitBI.RecordCount(g_sDataSourceName, objEO)
For i = 1 To RecordCount
Me.treStyle.Nodes.Add "K" & objEO("type_flag"), tvwChild, "K" & objEO("type_flag") & objEO("accunit_id"), "【" & objEO("accunit_code") & "】" & objEO("accunit_name")
If NodeKey = "K" & objEO("type_flag") & objEO("accunit_id") Then NodeFlag = True
objOID = objEO("accunit_id")
Set objEO = objAccUnitBI.MoveTo(g_sDataSourceName, U8FDEso.esoNext, m_conBIStyle, objOID)
Next
For i = 1 To treStyle.Nodes.count
If treStyle.Nodes(i).children > 0 Then
treStyle.Nodes(i).Image = 1
Else
treStyle.Nodes(i).Image = 3
End If
Next
If NodeFlag Then
Me.treStyle.Nodes(NodeKey).Selected = True
Else
MsgBox "【" & UnitCode & "】被删除了!"
If Me.treStyle.Nodes(mID(NodeKey, 1, 2)).children > 0 Then
NodeKey = Me.treStyle.Nodes(mID(NodeKey, 1, 2)).child.key
Me.treStyle.Nodes(NodeKey).Selected = True
Me.treStyle.Nodes(NodeKey).Expanded = True
Else
NodeKey = mID(NodeKey, 1, 2)
Me.treStyle.Nodes(NodeKey).Selected = True
Me.treStyle.Nodes(NodeKey).Image = 3
End If
objOID = mID(NodeKey, 3)
Set EO = objAccUnitBI.MoveTo(g_sDataSourceName, U8FDEso.esoCurrent, m_conBIStyle, objOID)
End If
Set objAccUnitBI = Nothing
Set objOID = Nothing
Set objEO = Nothing
SetUI
End Sub
Public Sub SetUI()
Dim objAccUnitBI As New U8FDBso.clsAccUnitBI
With m_EO
Me.txtCode.Property = SwitchDataType(EO.Fields("accunit_code").DataType)
Me.txtCode.MaxLength = EO.Fields("accunit_code").length
Me.txtName.Property = SwitchDataType(EO.Fields("accunit_name").DataType)
Me.txtName.MaxLength = EO.Fields("accunit_name").length
Me.txtDigest.Property = SwitchDataType(EO.Fields("digest").DataType)
Me.txtDigest.MaxLength = EO.Fields("digest").length
If m_EO.State = U8FDEso.esoInitialized Then
Me.cboType.ListIndex = mID(Me.treStyle.SelectedItem.key, 2, 1)
Me.txtCode.Text = ""
Me.txtName.Text = ""
Me.txtDigest.Text = ""
ElseIf m_EO.State = U8FDEso.esoAddNew Then
Me.cboType.ListIndex = mID(Me.treStyle.SelectedItem.key, 2, 1)
Me.txtCode.Text = ""
Me.txtName.Text = ""
Me.txtDigest.Text = ""
Else
Me.cboType.ListIndex = IIf(IsNull(.Fields("type_flag")), "", .Fields("type_flag"))
Me.txtCode.Text = IIf(IsNull(.Fields("accunit_code")), "", .Fields("accunit_code"))
Me.txtName.Text = IIf(IsNull(.Fields("accunit_name")), "", .Fields("accunit_name"))
Me.txtDigest.Text = IIf(IsNull(.Fields("digest")), "", .Fields("digest"))
End If
End With
'----Set Status
Select Case EO.State
Case U8FDEso.esoAddNew
Me.tlbAction.Buttons("AddNew").Enabled = False
Me.tlbAction.Buttons("Edit").Enabled = False
Me.tlbAction.Buttons("Delete").Enabled = False
Me.tlbAction.Buttons("Save").Enabled = True
Me.tlbAction.Buttons("Cancel").Enabled = True
Me.tlbAction.Buttons("Refresh").Enabled = False
Me.tlbAction.Buttons("Import").Enabled = False
Me.tlbAction.Buttons("Find").Enabled = False
Me.picView.Enabled = True
Me.ufgAccUnit.Visible = False
Case U8FDEso.esoEdit
Me.tlbAction.Buttons("AddNew").Enabled = False
Me.tlbAction.Buttons("Edit").Enabled = False
Me.tlbAction.Buttons("Delete").Enabled = False
Me.tlbAction.Buttons("Save").Enabled = True
Me.tlbAction.Buttons("Cancel").Enabled = True
Me.tlbAction.Buttons("Refresh").Enabled = False
Me.tlbAction.Buttons("Import").Enabled = False
Me.tlbAction.Buttons("Find").Enabled = False
Me.picView.Enabled = True
Case U8FDEso.esoInstance
Me.tlbAction.Buttons("AddNew").Enabled = True
Me.tlbAction.Buttons("Edit").Enabled = True
If Len(Me.treStyle.SelectedItem.key) > 2 Then
If objAccUnitBI.IsUsed(g_sDataSourceName, mID(Me.treStyle.SelectedItem.key, 3)) Then
Me.tlbAction.Buttons("Delete").Enabled = False
Else
Me.tlbAction.Buttons("Delete").Enabled = True
End If
Else
Me.tlbAction.Buttons("Delete").Enabled = False
End If
Me.tlbAction.Buttons("Save").Enabled = False
Me.tlbAction.Buttons("Cancel").Enabled = False
Me.tlbAction.Buttons("Refresh").Enabled = True
Me.tlbAction.Buttons("Import").Enabled = True
Me.tlbAction.Buttons("Find").Enabled = True
Me.picView.Enabled = False
Case U8FDEso.esoInitialized
Me.tlbAction.Buttons("AddNew").Enabled = True
Me.tlbAction.Buttons("Edit").Enabled = False
Me.tlbAction.Buttons("Delete").Enabled = False
Me.tlbAction.Buttons("Save").Enabled = False
Me.tlbAction.Buttons("Cancel").Enabled = False
Me.tlbAction.Buttons("Refresh").Enabled = False
Me.tlbAction.Buttons("Import").Enabled = True
Me.tlbAction.Buttons("Find").Enabled = True
Me.picView.Enabled = False
Me.ufgAccUnit.Visible = False
End Select
If Len(Me.treStyle.SelectedItem.key) > 2 Then
If objAccUnitBI.IsUsed(g_sDataSourceName, mID(Me.treStyle.SelectedItem.key, 3)) Then
ufgAccUnit.Visible = True
Else
ufgAccUnit.Visible = False
End If
Else
ufgAccUnit.Visible = False
End If
Set objAccUnitBI = Nothing
SetTlbStyle Me, False
ocxCtbTool.RefreshEnable
End Sub
Private Sub txtCode_CustKeyDown(ByVal key As EDITLib.KeyTypes)
If key = KeyDown Or key = KeyRet Then
SetEdtTxtFocus Me.txtName
ElseIf key = KeyUp Then
SetEdtTxtFocus Me.txtDigest
End If
End Sub
Private Sub txtDigest_CustKeyDown(ByVal key As EDITLib.KeyTypes)
If key = KeyDown Or key = KeyRet Then
SetEdtTxtFocus Me.txtCode
ElseIf key = KeyUp Then
SetEdtTxtFocus Me.txtName
End If
End Sub
Private Sub txtName_CustKeyDown(ByVal key As EDITLib.KeyTypes)
If key = KeyDown Or key = KeyRet Then
SetEdtTxtFocus Me.txtDigest
ElseIf key = KeyUp Then
SetEdtTxtFocus Me.txtCode
End If
End Sub
Private Sub PrintData()
If SetPrintDataStyleXML_flag = False Then SetPrintDataStyleXML
frmRightMenu.ocxPrint.DoPrint
End Sub
Private Sub PrintView()
If SetPrintDataStyleXML_flag = False Then SetPrintDataStyleXML
frmRightMenu.ocxPrint.PrintPreview
End Sub
Private Sub Export()
If SetPrintDataStyleXML_flag = False Then SetPrintDataStyleXML
frmRightMenu.ocxPrint.ExportToFile 0, PrintTypeList, PrintSizeList, "", ""
End Sub
Public Sub SetPrintDataStyleXML()
Dim lRet As Long
Dim sData As String
Dim sStyle As String
Dim sModuleId As String
Dim SQL As String
On Error GoTo lblHandle
SQL = "Select " & EO("accunit_code").SourceField & " as 单位代码," & EO("accunit_name").SourceField & " as 单位名称," & _
"(Case When " & EO("type_flag").SourceField & "=0 Then '个人' Else " & _
"(Case When " & EO("type_flag").SourceField & "=1 Then '部门' Else " & _
"(Case When " & EO("type_flag").SourceField & "=2 Then '银行' Else " & _
"(Case When " & EO("type_flag").SourceField & "=3 Then '客户' Else " & _
"(Case When " & EO("type_flag").SourceField & "=4 Then '供应商' Else '项目' END)" & _
" END)" & _
" END)" & _
" END)" & _
" END)" & _
" As 单位类别, " & EO("digest").SourceField & " as 备注" & _
" From " & EO.SourceTable & _
" order by " & EO("type_flag").SourceField & "," & EO("accunit_code").SourceField
sData = SetPrintDataXML(SQL, "单位定义", PrintTypeList, PrintSizeList)
sStyle = SetPrintStyleXML("")
sModuleId = "Default"
lRet = frmRightMenu.ocxPrint.SetDataStyleXML(sData, False, sStyle, False, sModuleId)
If lRet <> 0 Then
MsgBox "打印数据格式设置失败!", vbInformation, App.ProductName
SetPrintDataStyleXML_flag = False
End If
SetPrintDataStyleXML_flag = True
Exit Sub
lblHandle:
SetPrintDataStyleXML_flag = False
MsgBox "打印数据格式设置失败!", vbInformation, App.ProductName
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -