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

📄 mdltreeviewinmainleft.bas

📁 VB数据库设计的代码。需要根据自己的数据库再作调整
💻 BAS
字号:
Attribute VB_Name = "mdlTreeViewInMainLeft"
Option Explicit

Private Const KINDKEYPRE = "KINDKEY"                '类别KYE前缀
Private Const MERCHANDISEKEYPRE = "MERCHANDISEKEY"  '商品KEY前缀

'***********************************************************************
'* 过程名:IniTreeView
'* 功  能:初始化TreeView
'* 参  数:TreeView                  TreeView控件
'* 版  本:2006.01.05 颜志军 初版
'***********************************************************************
Public Sub IniTreeView(ByRef tvTreeViewCtl As TreeView)
    '变量定义
    Dim kindSet As clsMerchandisekindSet    '商口类别集
    Dim kind As clsMerchandisekind          '商品类别
    Dim currentNode As Node                 '当前节点
    
    '生成对象
    Set kindSet = New clsMerchandisekindSet
    
    '清空TreeView中节点
    tvTreeViewCtl.Nodes.Clear
    
    '加入控件
    For Each kind In kindSet
        Set currentNode = tvTreeViewCtl.Nodes.Add(, tvwLast, _
                KINDKEYPRE & CStr(kind.kindId), kind.kindName, 1)
        '加入该类下的商品
        IniMerchandiseInTreeView tvTreeViewCtl, currentNode.index, kind.kindId
    Next
End Sub

'***********************************************************************
'* 过程名:IniMerchandiseInTreeView
'* 功  能:初始化类别下商品名
'* 参  数:TreeView                     TreeView控件
'*       :Integer                      类别节点index
'*       :Integer                      类别ID
'* 版  本:2006.01.05 颜志军 初版
'***********************************************************************
Private Sub IniMerchandiseInTreeView(ByRef tvTreeViewCtl As TreeView, _
        ByVal index As Integer, _
        ByVal kindId As Integer)
    '变量定义
    Dim merchandiseSet As clsMerchandiseinfoSet '商品集
    Dim merchandise As clsMerchandiseinfo       '商品
    
    '取得指定类别下商品集
    Set merchandiseSet = New clsMerchandiseinfoSet
    merchandiseSet.LoadSetByKindId kindId
    
    '加入控件
    For Each merchandise In merchandiseSet
        tvTreeViewCtl.Nodes.Add index, tvwChild, MERCHANDISEKEYPRE & _
            CStr(merchandise.merchandiseId), merchandise.merchandiseName, 2
    Next
End Sub

'***********************************************************************
'* 过程名:GetCurrentSel
'* 功  能:取得当前选择
'* 参  数:Integer                      节点类型 1类别 2商品
'*       :String                       名称
'*       :TreeView                     TreeView控件
'* 版  本:2006.01.06 颜志军 初版
'***********************************************************************
Private Sub GetCurrentSel(ByRef selKind As Integer, _
                        ByRef selName As String, _
                        ByRef tvTreeViewCtl As TreeView)
    
    If Not tvTreeViewCtl.SelectedItem Is Nothing Then
        '取得节点KEY及TEXT属性
        Dim key As String
        Dim itemName As String
        key = tvTreeViewCtl.SelectedItem.key
        itemName = tvTreeViewCtl.SelectedItem.Text
        
        '分析节点
        If InStr(key, KINDKEYPRE) > 0 Then  '类别
            selKind = 1
        Else    '商品
            selKind = 2
        End If
        selName = itemName
    Else
        selKind = 0 '无选择节点
    End If
    
End Sub

'***********************************************************************
'* 函数名:FindItemInListView
'* 功  能:在LISTVIEW中查找条目
'* 参  数:ListView                     列表控件
'*       :TreeView                     TreeView控件
'* 版  本:2006.01.06 颜志军 初版
'***********************************************************************
Private Function FindItemInListView(ByRef lvListViewCtl As ListView, _
                                    ByVal col As Integer, _
                                    ByVal flag As String) As Integer
    '单独一行
    Dim item As ListItem
                                        
    For Each item In lvListViewCtl.ListItems
        If col = 0 Then
            If item.Text = flag Then
                FindItemInListView = item.index
                Exit Function
            End If
        ElseIf col > 0 And col <= item.ListSubItems.Count Then
            If item.SubItems(col) = flag Then
                FindItemInListView = item.index
                Exit Function
            End If
        End If
    Next
    
    FindItemInListView = -1
End Function

'***********************************************************************
'* 过程名:UpdateSelectInList
'* 功  能:更新LISTVIEW选择条
'* 参  数:ListView                     列表控件
'*       :TreeView                     TreeView控件
'* 版  本:2006.01.06 颜志军 初版
'***********************************************************************
Public Sub UpdateSelectInList(ByRef lvListViewCtl As ListView, _
                                ByRef tvTreeViewCtl As TreeView)
                                
    '变量定义
    Dim curSelKind As Integer   '当前选择节点类型
    Dim curSelName As String    '当前选择节点内容
    Dim index As Integer        '更新的选择位置
    
    '取得选择信息
    GetCurrentSel curSelKind, curSelName, tvTreeViewCtl
    
    '更新ListView选择条位置
    Select Case g_listViewState
    Case USERLIST
    Case MEMBERSHOPLIST
    Case MERCHANDISEKINDLIST
        If curSelKind = 1 Then
            index = FindItemInListView(lvListViewCtl, 1, curSelName)
        End If
    Case MERCHANDISELIST
        If curSelKind = 1 Then
            index = FindItemInListView(lvListViewCtl, 2, curSelName)
        ElseIf curSelKind = 2 Then
            index = FindItemInListView(lvListViewCtl, 1, curSelName)
        End If
    Case APPLYLIST
        If curSelKind = 2 Then
            index = FindItemInListView(lvListViewCtl, 2, curSelName)
        End If
    Case DAYREPORTLIST
        If curSelKind = 2 Then
            index = FindItemInListView(lvListViewCtl, 2, curSelName)
        End If
    Case REPORTDAY
        If curSelKind = 1 Then
            index = FindItemInListView(lvListViewCtl, 3, curSelName)
        ElseIf curSelKind = 2 Then
            index = FindItemInListView(lvListViewCtl, 2, curSelName)
        End If
    Case REPORTMON
        If curSelKind = 1 Then
            index = FindItemInListView(lvListViewCtl, 3, curSelName)
        ElseIf curSelKind = 2 Then
            index = FindItemInListView(lvListViewCtl, 2, curSelName)
        End If
    End Select
    
    If index > 0 Then
        lvListViewCtl.ListItems(index).Selected = True
    End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -