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

📄 tusu_general.frm

📁 一个用VB写的财务软件源码
💻 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 + -