以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 递归函数生成目录树 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58678) |
-- 作者:feiyu988 -- 发布时间:2014/10/22 10:34:00 -- 递归函数生成目录树 根据坛子里的例子做了个递归函数生成目录树的项目,但是在窗口打开时显示:从字符串“”到类型“Double”的转换无效。无法生成目录树,以下是代码,哪位给看俺问题出在哪里? 窗口与控件事件
物资字典_AfterLoad
Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1") Dim nd As WinForm.TreeNode Dim dt As DataTable = DataTables("物资字典") tv.StopRedraw() tv.Nodes.Clear tv.Nodes.Add("物资字典") Dim lst As List(Of String) = dt.GetValues("物资编码") For Each dr As DataRow In dt.Datarows If dr("上级编号") = 0 Then nd = tv.Nodes.Add(dr("物资编码"),dr("名称")) Functions.Execute("物资递归函数",nd,dt) End If Next tv.ResumeRedraw()
自定义函数
递归函数 物资递归函数
Dim nd As WinForm.TreeNode = Args(0) Dim dt As DataTable = Args(1) Dim drs As List(Of DataRow) drs = dt.Select("[上级编号] = " & nd.Name) For Each dr As DataRow In drs Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("物资编码"),dr("名称")) Functions.Execute("物资递归函数",cd,dt) Next
|
-- 作者:有点甜 -- 发布时间:2014/10/22 10:36:00 -- drs = dt.Select("[上级编号] = \'" & nd.Name & "\'") |
-- 作者:feiyu988 -- 发布时间:2014/10/22 10:42:00 -- 还是相同的提示语,我的物资编码和上级编号列都是字符型的,因为里面有字母,是不是和这个有关系 |
-- 作者:有点甜 -- 发布时间:2014/10/22 10:44:00 -- If dr("上级编号") = nothing Then |
-- 作者:feiyu988 -- 发布时间:2014/10/22 10:48:00 -- OK啦 |
-- 作者:feiyu988 -- 发布时间:2014/10/22 12:31:00 -- 目录树的NodeMouseDoubleClick事件代码设置为: Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
因为数据量大,已设置为分页加载,如何改写为在datatable后台筛选,便于筛选所有数据,直接吧tables改为datatables会出错 |
-- 作者:有点甜 -- 发布时间:2014/10/22 14:24:00 -- Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") DataTables("物资字典").Load |