以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 请教狐狸爸爸,开发中遇到菜鸟级问题了(问题已解决) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=25373)
|
-- 作者:ch_biao
-- 发布时间:2012/11/7 18:22:00
-- 请教狐狸爸爸,开发中遇到菜鸟级问题了(问题已解决)
点出根目录下的"加载全部数据",数据就没有了,知道是下面的代码不对,但不知怎么去改。
Dim md As New SQLCommand Dim dp As DataTable md.CommandText = "SELECT DISTINCT 咨询作业_作业日期,咨询项目_委托人,咨询项目_一级名称 From {咨询项目登记表}" dp = md.ExecuteReader() Dim tv As WinForm.TreeView = e.Form.Controls("TreeView3") tv.BuildTree(dp,"咨询作业_作业日期|咨询项目_委托人|咨询项目_一级名称") tv.Nodes.Insert("加载全部数据",0)
另想在节点上加上项目的个数,请赐教。
[此贴子已经被作者于2012-11-7 19:40:15编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2012/11/7 18:30:00
--
你这是生成目录树的代码。
你的筛选的代码呢?
|
-- 作者:13636600695
-- 发布时间:2012/11/7 18:31:00
--
Dim md As New SQLCommand Dim dp As DataTable md.CommandText = "SELECT DISTINCT 咨询作业_作业日期,咨询项目_委托人,咨询项目_一级名称 From {咨询项目登记表}" dp = md.ExecuteReader() Dim tv As WinForm.TreeView = e.Form.Controls("TreeView3") tv.BuildTree(dp,"","咨询作业_作业日期","咨询项目_委托人","咨询项目_一级名称") tv.Nodes.Insert("加载全部数据",0)
|
-- 作者:ch_biao
-- 发布时间:2012/11/7 18:35:00
--
Dim Filter As String If e.Node.Text = "加载所有数据" Then Filter = "" Else Dim Value() As String Value = e.Node.FullPath.Split("\\") Select Case e.Node.Level Case 0 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\'" Case 1 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\'" Case 1 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\' And [咨询项目_委托人] = \'" & Value(1) & "\'" End Select End If DataTables("咨询项目登记表").LoadFilter = Filter DataTables("咨询项目登记表").Load()
自己发现可能应当是:
Case 2 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\' And [咨询项目_委托人] = \'" & Value(2) & "\'"
[此贴子已经被作者于2012-11-7 18:38:36编辑过]
|
-- 作者:13636600695
-- 发布时间:2012/11/7 18:40:00
--
Dim Filter As String If e.Node.Text = "加载所有数据" Then Filter = "" Else Dim Value() As String Value = e.Node.FullPath.Split("\\") Select Case e.Node.Level Case 0 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\'" Case 1 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\'" Case 2 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\' And [咨询项目_委托人] = \'" & Value(2) & "\'" End Select End If DataTables("咨询项目登记表").LoadFilter = Filter DataTables("咨询项目登记表").Load()
[此贴子已经被作者于2012-11-7 18:40:39编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2012/11/7 18:43:00
--
Dim Filter As String If e.Node.Text = "加载全部数据" Then Filter = "" Else Dim Value() As String Value = e.Node.FullPath.Split("\\") Select Case e.Node.Level Case 0 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\'" Case 1 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\'" Case 1 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\' And [咨询项目_委托人] = \'" & Value(1) & "\'" End Select End If DataTables("咨询项目登记表").LoadFilter = Filter DataTables("咨询项目登记表").Load()
提示: 你生成目录树的时候,用的是:
tv.Nodes.Insert("加载全部数据",0)
前后要一致,不能前面是“全部”,后面是“所有”,对于计算机,多个空格都不行,何况是两个不同的词。
|
-- 作者:ch_biao
-- 发布时间:2012/11/7 18:46:00
--
以下是引用13636600695在2012-11-7 18:40:00的发言:
Dim Filter As String If e.Node.Text = "加载所有数据" Then Filter = "" Else Dim Value() As String Value = e.Node.FullPath.Split("\\") Select Case e.Node.Level Case 0 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\'" Case 1 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\'" Case 2 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\' And [咨询项目_委托人] = \'" & Value(2) & "\'" End Select End If DataTables("咨询项目登记表").LoadFilter = Filter DataTables("咨询项目登记表").Load()
[此贴子已经被作者于2012-11-7 18:40:39编辑过]
还是没有用,谢谢你。
|
-- 作者:ch_biao
-- 发布时间:2012/11/7 18:50:00
--
谢谢指点。再请教目录树节点下项目个数的显示。
|
-- 作者:狐狸爸爸
-- 发布时间:2012/11/7 18:52:00
--
现在不用考虑这个问题,做起来功夫太多,等以后的更新,做这样的功能会轻松很多。
|
-- 作者:ch_biao
-- 发布时间:2012/11/7 19:15:00
--
以下是引用狐狸爸爸在2012-11-7 18:43:00的发言:
Dim Filter As String If e.Node.Text = "加载全部数据" Then Filter = "" Else Dim Value() As String Value = e.Node.FullPath.Split("\\") Select Case e.Node.Level Case 0 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\'" Case 1 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\'" Case 1 Filter ="[咨询作业_作业日期] = \'" & Value(0) & "\' And [咨询项目_一级名称] = \'" & Value(1) & "\' And [咨询项目_委托人] = \'" & Value(1) & "\'" End Select End If DataTables("咨询项目登记表").LoadFilter = Filter DataTables("咨询项目登记表").Load()
提示: 你生成目录树的时候,用的是:
tv.Nodes.Insert("加载全部数据",0)
前后要一致,不能前面是“全部”,后面是“所有”,对于计算机,多个空格都不行,何况是两个不同的词。
第三节目录还是无法筛选。
|