以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 目录树 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160707) |
||||
-- 作者:采菊东篱下 -- 发布时间:2021/2/18 12:41:00 -- 目录树 此主题相关图片如下:qq图片20210218121615.png 如何把这样的表做成安分类生成的不同子节目录树,如这样: 分类 -月租停车 -巷 -号 -房 分类 -临时停车 -车牌号码 我知道只要把数据安一、二、三、四、五级重新整理到相应的列就能实现,但这样会破坏表结构,不方便录入,如何在不破坏表结构下生成要实现的目录树? |
||||
-- 作者:有点蓝 -- 发布时间:2021/2/18 13:10:00 -- 参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=132603 |
||||
-- 作者:采菊东篱下 -- 发布时间:2021/2/18 20:26:00 -- 我这样写造成主界面窗口无法保存,无法预览,一保存直接死机!未改主界面窗口中的AfterLoad事件代码前,都一直没问题的,改后死机了!
密码:888888 Dim cmd As New SQLCommand Dim dt As DataTable cmd.CommandText = "SELECT [_Identify],分类,住址_序号,住址_巷,住址_号,住址_房,Year(日期) As 年, Month(日期) As 月,户主姓名,手机号码,车牌号码 Fro m {车辆基本信息}" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView2") trv.BuildTree(dt,"住址_巷|住址_号|住址_房|户主姓名|手机号码|车牌号码","[分类] = \'月租停车\'","住址_序号,住址_号,住址_房") \'trv.Nodes.Insert("加载临时停车数据",0) trv.Nodes.Insert("月租停车",0) Do While trv.Nodes.Count > 1 trv.Nodes(1).MoveRight Loop Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2") trv2.BuildTree(dt,"年|月|车牌号码","[分类] = \'临时停车\'","年 DESC,月 DESC") \'trv2.Nodes.Insert("加载临时停车数据",0) Dim node As WinForm.TreeNode = trv.Nodes.Add("临时停车") For i As Integer = trv2.Nodes.Count - 1 To 0 Step -1 Dim nn As WinForm.TreeNode = trv2.Nodes(i) trv2.Nodes.RemoveAt(i) node.basenode.Nodes.Add(nn.basenode) Next \'加载第一页数据 With DataTables("车辆基本信息") .LoadFilter = "" \'清除加载条件 .LoadPage = 0 \'加载第一页 .LoadTop = 20 \'每页5行 .LoadOrder = "分类,住址_序号,住址_号,住址_房" .LoadReverse = True .Load() e.Form.Controls("TextBox2").Value = 1 & "/" & .TotalPages End With |
||||
-- 作者:有点蓝 -- 发布时间:2021/2/18 20:54:00 -- 需要至少2个目录树控件,另外一个可以隐藏,作为过渡使用。 Dim trv As WinForm.TreeView = e.Form.Controls("TreeView2") …… Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeViewxx") 原理很简单,目录树1,BuildTree生成月租停车节点后右移到"月租停车"节点里;目录树2,BuildTree生成临时停车节点后移到目录树1的“临时停车”节点里 [此贴子已经被作者于2021/2/18 20:57:10编辑过]
|
||||
-- 作者:采菊东篱下 -- 发布时间:2021/2/18 21:14:00 -- 另一个目录树是否把可见设为False |
||||
-- 作者:有点蓝 -- 发布时间:2021/2/18 21:26:00 -- 需要至少2个目录树控件,另外一个可以隐藏,作为过渡使用。 |
||||
-- 作者:采菊东篱下 -- 发布时间:2021/2/18 21:29:00 -- 我叠加了一个目录树了,把可见性设为False,代码写成这样,还是不能预览。 Dim cmd As New SQLCommand Dim dt As DataTable \'cmd.C \'内部数据源,这行代码不需要 cmd.CommandText = "SELECT [_Identify],分类,住址_序号,住址_巷,住址_号,住址_房,Year(日期) As 年, Month(日期) As 月,户主姓名,手机号码,车牌号码 Fro m {车辆基本信息}" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView2") trv.BuildTree(dt,"住址_巷|住址_号|住址_房|户主姓名|手机号码|车牌号码","[分类] = \'月租停车\'","住址_序号,住址_号,住址_房") \'trv.Nodes.Insert("加载临时停车数据",0) trv.Nodes.Insert("月租停车",0) Do While trv.Nodes.Count > 1 trv.Nodes(1).MoveRight Loop Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView3") trv2.BuildTree(dt,"年|月|车牌号码","[分类] = \'临时停车\'","年 DESC,月 DESC") \'trv2.Nodes.Insert("加载临时停车数据",0) Dim node As WinForm.TreeNode = trv.Nodes.Add("临时停车") For i As Integer = trv2.Nodes.Count - 1 To 0 Step -1 Dim nn As WinForm.TreeNode = trv2.Nodes(i) trv2.Nodes.RemoveAt(i) node.basenode.Nodes.Add(nn.basenode) Next \'加载第一页数据 With DataTables("车辆基本信息") .LoadFilter = "" \'清除加载条件 .LoadPage = 0 \'加载第一页 .LoadTop = 20 \'每页5行 .LoadOrder = "分类,住址_序号,住址_号,住址_房" .LoadReverse = True .Load() e.Form.Controls("TextBox2").Value = 1 & "/" & .TotalPages End With
|
||||
-- 作者:采菊东篱下 -- 发布时间:2021/2/18 21:39:00 -- 不叠加,把它上下连接,都设为可见,还是不能预览。 重新打开无法正常打开,显示这个无法消失
[此贴子已经被作者于2021/2/18 23:06:29编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2021/2/18 21:42:00 -- 测试没有问题,提示什么错误? 另外,目录树的勾选事件代码要需要改的,需要判断 一下勾选的节点是哪一个分类的,然后对应处理那一个分类的加载条件
|
||||
-- 作者:采菊东篱下 -- 发布时间:2021/2/18 23:05:00 -- 没有提示,可以保存,就是无法预览,无法正常打开,我改为上面上传的这样又如何实现分页加载呢?感觉分成上下两个目录树,视觉上差不多,但刷新目录树、查找按钮都没用了。 |