以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 目录树 部门值重复了  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93627)

--  作者:misamisali
--  发布时间:2016/12/2 15:05:00
--  [求助] 目录树 部门值重复了

我按照教程,通过Node mouseclick 事件,按部门生成目录树, 但是不晓得怎么去除重复值,代码要怎么修。

 

Dim Filter As String
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 0
            Filter = "[部门] = \'" & dr("部门") & "\'"
        Case 1
            Filter = "[部门] = \'" & dr("部门") & "\' And [年份] = \'" & dr("年份") & "\'"
           End Select
End If
Dim s As String  = DataTables("考勤统计表").GetComboListString("部门")
output.show(s)
Tables("考勤统计表").Filter = Filter


图片点击可在新窗口打开查看此主题相关图片如下:重复值目录树.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2016/12/2 15:23:00
--  
上面的代码是做筛选的吧。和生成目录树有关系?
--  作者:misamisali
--  发布时间:2016/12/2 15:26:00
--  

窗口 AFTERLOAD 事件是这样的:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("考勤统计表", "年份|月份|部门")
trv.Nodes.Insert("显示所有行",0)

 

Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
trv2.BuildTree("考勤统计表", "部门")
trv2.Nodes.Insert("显示所有行",0)


图片点击可在新窗口打开查看此主题相关图片如下:目录树.png
图片点击可在新窗口打开查看

 

按时间筛选没有问题的

[此贴子已经被作者于2016/12/2 15:26:41编辑过]

--  作者:有点蓝
--  发布时间:2016/12/2 15:40:00
--  
应该是你的部门数据有空格吧
--  作者:有点蓝
--  发布时间:2016/12/2 15:42:00
--  
执行代码清除一下空格试试


For Each dr As DataRow In DataTables("考勤统计表").DataRows
    dr("部门") = dr("部门").trim()
Next

--  作者:misamisali
--  发布时间:2016/12/2 15:43:00
--  

按理,我想实现的效果是,打开一个节点“部门”,次节点“2016年”,这样子的,

但是现在就是有几个月的数据, 目录树里就有 那么多个部门,不是部门空值问题。


--  作者:有点蓝
--  发布时间:2016/12/2 15:45:00
--  
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
trv2.BuildTree("考勤统计表", "部门|年份")
trv2.Nodes.Insert("显示所有行",0)
--  作者:misamisali
--  发布时间:2016/12/2 15:54:00
--  

是空格的问题,谢谢!