注册 登录
编程论坛 VB6论坛

如何将数据写入treeview

yuk_yu 发布于 2012-04-01 08:35, 520 次点击
如何将数据写入treeview?
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录


[ 本帖最后由 yuk_yu 于 2012-4-1 08:45 编辑 ]
8 回复
#2
Artless2012-04-02 00:06
.Nodes.Add
#3
yuk_yu2012-04-08 21:48
回复 2楼 Artless
可以帮忙写下代码吗?因为有多级我不会写!请帮帮忙!谢谢
#4
Artless2012-04-09 23:52
以下是引用yuk_yu在2012-4-8 21:48:05的发言:

可以帮忙写下代码吗?因为有多级我不会写!请帮帮忙!谢谢

msdn一下.Nodes.Add
或说一下要求
#5
yuk_yu2012-04-10 14:19
回复 4楼 Artless
OwnerName    PINo    ApproveStatus
Danny_yu    20120327162823    Open
Danny_yu    20120327165603    Close
Danny_yu    20120327173503    Close
Danny_yu    20120328234303    Open
Danny_yu    20120329110003    close
yukp_yu    20120327171203    Close
yukp_yu    20120328225203    Open
yukp_yu    20120329170403    close


将OwnerName,PINo,ApproveStatus三项导入到treeview中

[ 本帖最后由 yuk_yu 于 2012-4-10 14:23 编辑 ]
#6
Artless2012-04-10 23:14
以下是引用yuk_yu在2012-4-10 14:19:39的发言:



将OwnerName,PINo,ApproveStatus三项导入到treeview中

用ListView吧
#7
yuk_yu2012-04-11 08:20
只有本站会员才能查看附件,请 登录

我要的就是这样,但我只会写一级。我不会用递归。请帮忙指点。

[ 本帖最后由 yuk_yu 于 2012-4-11 11:34 编辑 ]
#8
风吹过b2012-04-11 11:49
以下是引用yuk_yu在2012-4-11 08:20:41的发言:


我要的就是这样,但我只会写一级。我不会用递归。请帮忙指点。



你在一楼提供的源代码,只有一个函数,没有 变量定义,没有对象定义,更没有 数据库连接代码。
这部分,我也不想补了。就取你在 5楼 提供的数据进行 替换 操作好啦。
凡是 替代 的部分,你自己想办法增加进去吧。

代码如下:
程序代码:

Private Type 替代返回结构
    OwnerName  As String
    PINo    As String
    ApproveStatus   As String
End Type

Dim keylist() As String     '保存 KEY 列表


Private Sub Form_Load()

ReDim keylist(10000)        '这个值定义的大一些

Dim key As String, text As String
Dim node2 As Node, node1 As Node
Dim r As 替代返回结构


'以下代码只实现了一级

'因未提供 MYCON 这个对象,所以原代码无法直接测试,使用替代法测试

        '产生根
        key = "All PI Owner Name"
        text = "All PI Owner Name"
        
        TreeView1.LineStyle = tvwTreeLines
        'TreeView1.ImageList = ImageList1        如果你需要加图像,在这里绑定,在每个添加时指定图标
        
        Set node1 = TreeView1.Nodes.Add(, tvwFirst, key, text)          '
        
        r = readdate
        Do
            '第一级
            If Not findkey(r.OwnerName) Then        '如果 OwnerName 不存在,则添加
                Set node1 = TreeView1.Nodes.Add(key, tvwChild, r.OwnerName, r.OwnerName)
            End If
            '第二级
            If Not findkey(r.PINo) Then             '如果 tvwChild 不存在,则添加
                Set node1 = TreeView1.Nodes.Add(r.OwnerName, tvwChild, r.PINo, r.PINo)
            End If
            '第三级
            'ApproveStatus 都必须添加进去的,ApproveStatus的值有重复,所以KEY需要再加上 Pinno上去,如果还有重复,那就继续添加 OwnerName 上去
            Set node1 = TreeView1.Nodes.Add(r.PINo, tvwChild, r.PINo & r.ApproveStatus, r.ApproveStatus)
            
            r = readdate        '读下一个
            
        Loop While r.PINo <> ""     '替代函数里规定,读完数据后就返回空白

End Sub

Private Function findkey(cs As String) As Boolean    '返回是否存在这个KEY
Dim i As Long
Static keycont As Long

    findkey = False         '假设为假
For i = 1 To keycont        '查找
    If keylist(i) = cs Then     '找到
        findkey = True      '
        Exit For            '退出循环
    End If
Next i

If Not findkey Then         '如果为假
    keycont = keycont + 1               '计数+1
    If keycont > UBound(keylist) Then   '如果数组没空间了
        ReDim Preserve keylist(keycont + 100)       '扩大空间100
    End If
    keylist(keycont) = cs   '保存KEY
End If

End Function


Private Function readdate() As 替代返回结构
'测试用替代函数,用来返回指定数据,以结构返回。
Static i As Long
'Const TT = "Danny_yu,20120327162823,Open,Danny_yu,20120327165603,Close,Danny_yu,20120327173503,Close,Danny_yu,20120328234303,Open,Danny_yu,20120329110003,close,yukp_yu,20120327171203,Close,yukp_yu,20120328225203,Open,yukp_yu,20120329170403,close"

'做了一个 重复的 PINo 值,但不重复的 ApproveStatus
Const TT = "Danny_yu,20120327162823,Open,Danny_yu,20120327162823,Close,Danny_yu,20120327173503,Close,Danny_yu,20120328234303,Open,Danny_yu,20120329110003,close,yukp_yu,20120327171203,Close,yukp_yu,20120328225203,Open,yukp_yu,20120329170403,close"

If i = 0 Then
    Static fj() As String
    fj = Split(TT, ",")
End If
i = i + 1
If i <= 8 Then
    readdate.OwnerName = fj(i * 3 - 3)
    readdate.PINo = fj(i * 3 - 2)
    readdate.ApproveStatus = fj(i * 3 - 1)
End If

End Function

#9
yuk_yu2012-04-11 15:45
回复 8楼 风吹过b
感激不尽!谢谢
忘记了帮你加分!对不起!

[ 本帖最后由 yuk_yu 于 2012-4-11 15:46 编辑 ]
1