📄 tusu_general.frm
字号:
VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Begin VB.Form frmUSU_GeneralKmHelp
Caption = "总账科目选择"
ClientHeight = 6495
ClientLeft = 2940
ClientTop = 825
ClientWidth = 6360
Icon = "TUSU_General.frx":0000
LinkTopic = "Form1"
ScaleHeight = 6495
ScaleWidth = 6360
StartUpPosition = 1 '所有者中心
Begin VB.CommandButton cmdCancel
Cancel = -1 'True
Caption = "取消(&C)"
Height = 345
Left = 3525
TabIndex = 1
Top = 6105
Width = 1065
End
Begin VB.CommandButton cmdOk
Caption = "确定(&O)"
Default = -1 'True
Height = 345
Left = 1830
TabIndex = 0
Top = 6105
Width = 1065
End
Begin MSComctlLib.ImageList ImageList1
Left = 1095
Top = 5850
_ExtentX = 1005
_ExtentY = 1005
BackColor = -2147483643
ImageWidth = 16
ImageHeight = 16
MaskColor = 12632256
_Version = 393216
BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628}
NumListImages = 5
BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628}
Picture = "TUSU_General.frx":044A
Key = "Root"
EndProperty
BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628}
Picture = "TUSU_General.frx":089E
Key = "Expand"
EndProperty
BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628}
Picture = "TUSU_General.frx":0CF2
Key = "Collapse"
EndProperty
BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628}
Picture = "TUSU_General.frx":1146
Key = "Selected"
EndProperty
BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628}
Picture = "TUSU_General.frx":125A
Key = "UnSelected"
EndProperty
EndProperty
End
Begin MSComctlLib.TreeView tvwKm
Height = 5595
Index = 1
Left = 25
TabIndex = 2
Top = 330
Width = 6255
_ExtentX = 11033
_ExtentY = 9869
_Version = 393217
HideSelection = 0 'False
LabelEdit = 1
Style = 7
HotTracking = -1 'True
ImageList = "ImageList1"
Appearance = 1
End
Begin MSComctlLib.TabStrip tabKmSelect
Height = 6000
Left = 0
TabIndex = 3
Top = 0
Width = 6315
_ExtentX = 11139
_ExtentY = 10583
HotTracking = -1 'True
_Version = 393216
BeginProperty Tabs {1EFB6598-857C-11D1-B16A-00C0F0283628}
NumTabs = 1
BeginProperty Tab1 {1EFB659A-857C-11D1-B16A-00C0F0283628}
ImageVarType = 2
EndProperty
EndProperty
End
End
Attribute VB_Name = "frmUSU_GeneralKmHelp"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private selNode As Boolean '非明细科目为True
Private bMulSelNode As Boolean '科目是否多选择
Private m_bSelAll As Boolean '可以选择任意科目
Private chkCode As String '暂存当前复选节点关键字
Private rstType As ADODB.Recordset 'rstTYPE 为科目类型数据集
Private rstTrade As ADODB.Recordset
Private Iwatch As Integer
Private m_SubjectName As String
Private m_SubjectCode As String
Private m_sCondition As String
Private clsOnekjkm As clsDepart
Private loadflag() As Boolean
Public Valid As Boolean ' 点击取消按钮时赋False 确定按钮时赋True
'取塞选条件
Public Property Let usCondition(sCon As String)
m_sCondition = sCon
End Property
' 是否科目多选
' 返回True:表示多选择,False:表示单选
Public Property Get MultiSelNode() As Boolean
MultiSelNode = bMulSelNode
End Property
Public Property Let MultiSelNode(bMul As Boolean)
bMulSelNode = bMul
End Property
'是否需要选择最细一级科目
'true - 表示不需选择; false - 表示需选择;
Public Property Let ubSelAll(bSelAll As Boolean)
m_bSelAll = bSelAll
End Property
Public Property Get ubSelAll() As Boolean
ubSelAll = m_bSelAll
End Property
' 串连选择的多个科目代码,返回窗体调用结果
Public Property Get strChk() As String
Dim strSel As String
Dim Node As Node
Dim i As Integer
On Error Resume Next
strSel = ""
For i = 1 To tabKmSelect.Tabs.Count
For Each Node In tvwKm(i).Nodes
If Node.Checked Then
strSel = strSel & "," & Right(Node.Key, Len(Node.Key) - 1)
End If
Next Node
Next i
strChk = Right(strSel, Len(strSel) - 1)
Set Node = Nothing
End Property
' 返回窗体调用的单个科目代码和名称
Public Property Get SubjectName() As String
SubjectName = m_SubjectName
End Property
Public Property Get SubjectCode() As String
SubjectCode = m_SubjectCode
End Property
Private Sub cmdCancel_Click()
m_SubjectCode = ""
Valid = False
Me.Hide
End Sub
Private Sub cmdFilter_Click()
Dim i As Integer
MousePointer = vbHourglass
For i = 1 To rstTrade.RecordCount
tvwKm(i).Nodes.Clear
loadflag(i - 1) = False
Next i
clsOnekjkm.LoadAllRoot tvwKm(tabKmSelect.SelectedItem.Index), tabKmSelect.Tabs(tabKmSelect.SelectedItem.Index), m_sCondition, False
tvwKm(tabKmSelect.SelectedItem.Index).Nodes("R").Selected = True
tvwKm(tabKmSelect.SelectedItem.Index).Nodes("R").Expanded = True
loadflag(tabKmSelect.SelectedItem.Index - 1) = True
MousePointer = vbDefault
End Sub
Private Sub cmdOk_Click()
Dim pos As Long
Valid = True
If Not MultiSelNode Then
With tvwKm(tabKmSelect.SelectedItem.Index)
If .SelectedItem.Key <> "R" Then
If .SelectedItem.Parent.Key <> "R" Then
pos = InStr(1, .SelectedItem.text, "=") + 1
m_SubjectCode = Left(.SelectedItem.text, pos - 2)
m_SubjectName = Mid(.SelectedItem.text, pos)
Else
Exit Sub
End If
Else
Exit Sub
End If
'判断是否末级科目
If (Not m_bSelAll) And .SelectedItem.Children <> 0 Then
MsgBox "不是明细级科目,请重新选择!", vbInformation
Exit Sub
End If
End With
End If
Unload Me
End Sub
Private Sub Form_Activate()
Dim Node As Node
For Each Node In tvwKm(1).Nodes
Node.Checked = False
Next Node
Set Node = Nothing
End Sub
Private Sub form_load()
Dim i As Integer
Dim iCount As Integer
MousePointer = vbHourglass
Set rstTrade = New ADODB.Recordset
Set clsOnekjkm = New clsDepart
clsOnekjkm.m_bGeneral = True
rstTrade.CursorLocation = adUseClient
rstTrade.Open "select classserial,classname,yefx from tSYS_tradecodeclass A,tSYS_Account B" & _
" where B.AccountID='" & glo.sAccountID & "'and A.tradeID=B.TradeID", _
gloSys.cnnSYS, adOpenStatic, adLockReadOnly
If rstTrade.RecordCount > 0 Then
If Not rstTrade.BOF Then rstTrade.MoveFirst
tabKmSelect.Tabs(1).Caption = rstTrade.Fields(1)
rstTrade.MoveNext
Do While Not rstTrade.EOF
tabKmSelect.Tabs.Add tabKmSelect.Tabs.Count + 1, , rstTrade.Fields(1)
rstTrade.MoveNext
Loop
End If
If Me.MultiSelNode Then tvwKm(1).Checkboxes = True
Iwatch = rstTrade.RecordCount
ReDim loadflag(Iwatch)
For i = 2 To rstTrade.RecordCount
Load tvwKm(i)
clsOnekjkm.LoadAllRoot tvwKm(i), tabKmSelect.Tabs(i), m_sCondition, False
loadflag(i - 1) = True
Next i
clsOnekjkm.LoadAllRoot tvwKm(1), tabKmSelect.Tabs(1), m_sCondition, False
loadflag(0) = True
tabKmSelect.ZOrder 1
MousePointer = vbDefault
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim i As Integer
For i = 2 To Iwatch
Unload tvwKm(i)
Next i
Set clsOnekjkm = Nothing
rstTrade.Close
Set rstTrade = Nothing
Unload Me
End Sub
' 辅助核算组合条件
'
Private Sub tabKmSelect_Click()
Dim iCount As Integer
Dim j As Integer
MousePointer = vbHourglass
If loadflag(tabKmSelect.SelectedItem.Index - 1) = False Then
clsOnekjkm.LoadAllRoot tvwKm(tabKmSelect.SelectedItem.Index), tabKmSelect.Tabs(tabKmSelect.SelectedItem.Index), m_sCondition, False
tvwKm(tabKmSelect.SelectedItem.Index).Nodes("R").Selected = True
tvwKm(tabKmSelect.SelectedItem.Index).Nodes("R").Expanded = True
loadflag(tabKmSelect.SelectedItem.Index - 1) = True
End If
If tvwKm(tabKmSelect.SelectedItem.Index).Nodes.Count > 0 Then tvwKm(tabKmSelect.SelectedItem.Index).Nodes("R").Selected = True
For j = 1 To Iwatch
tvwKm(j).Visible = False
Next j
tvwKm(tabKmSelect.SelectedItem.Index).Visible = True
MousePointer = vbDefault
End Sub
Private Sub tvwKm_Collapse(Index As Integer, ByVal Node As MSComctlLib.Node)
tvwKm(tabKmSelect.SelectedItem.Index).Nodes("R").Selected = True
End Sub
Private Sub tvwKm_DblClick(Index As Integer)
Call cmdOk_Click
End Sub
Private Sub tvwKm_Expand(Index As Integer, ByVal Node As MSComctlLib.Node)
Node.Selected = True
End Sub
Private Sub tvwKm_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If selNode Then
tvwKm(Index).Nodes(chkCode).Checked = False
selNode = False
chkCode = "R"
End If
End Sub
Private Sub tvwKm_NodeCheck(Index As Integer, ByVal Node As MSComctlLib.Node)
If Node.Checked And Asc(Left(Trim$("" & Node.text), 1)) < 0 Then
' MsgBox "类别不可选,请选择科目!", vbInformation
selNode = True
chkCode = Node.Key
' ElseIf (Not m_bSelAll) And Node.Children > 0 And Node.Checked Then
' MsgBox "非明细级科目!", vbInformation
' selNode = True
' chkCode = Node.Key
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -