Foxtable(狐表)用户栏目专家坐堂 → [求助]筛选数增加根节点的代码


  共有5078人关注过本帖树形打印复制链接

主题:[求助]筛选数增加根节点的代码

美女呀,离线,留言给我吧!
wyanji
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:113 积分:1048 威望:0 精华:0 注册:2013/6/14 16:20:00
[求助]筛选数增加根节点的代码  发帖心情 Post By:2013/6/23 22:49:00 [只看该作者]

我的需求:

生成下表的加载树(注意:必须有根节点“宏天(中国)”)


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

 

目前的实现过程:

参照帮助文件“多选筛选树.Table”,建立了如下基础表

图片点击可在新窗口打开查看此主题相关图片如下:基础表.png
图片点击可在新窗口打开查看

 

期望的实现过程(我的问题):

 

基础表中的“全部”列是为了实现统一的根节点“宏天(中国)”而硬性增加的,无太大意义。

有没有办法通过写代码的方法实现“增加根节点“宏天(中国)”,删去基础表的“全部”列?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/6/24 6:48:00 [只看该作者]

自己写代码就行,以帮助的那个例子为例:

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim rd As WinForm.TreeNode = trv.Nodes.add("全部")
For Each cp As String In DataTables("订单").GetUniqueValues("","产品")
    Dim nd As WinForm.TreeNode = rd.Nodes.Add(cp)
    For Each kh As String In DataTables("订单").GetUniqueValues("产品 = '" & cp & "'","客户")
        nd.Nodes.add(kh)
    Next
Next


 回到顶部
美女呀,离线,留言给我吧!
wyanji
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:113 积分:1048 威望:0 精华:0 注册:2013/6/14 16:20:00
  发帖心情 Post By:2013/6/24 9:25:00 [只看该作者]

谢谢“有点甜”的回复。但是我还是没有搞定。请大家再次赐教。

 

我目前的代码是:

Dim nms As String() = {"全部","事业部","业务单元"} '指定生成目录树的各列
Dim qts As String() = {"'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号

Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
Dim nd As WinForm.TreeNode
For Each nd In e.node.allNodes '清除子节点的选中标记
    nd.Checked = False
Next
nd = e.Node.ParentNode
Do While nd IsNot Nothing '清除父节点的选中标记
    nd.Checked = False
    nd = nd.ParentNode
Loop
For Each nd In trv.AllNodes
    If nd.Checked  Then
        Dim rts() As String = nd.FullPath.Split("\")
        Dim val As String = ""
        For i As Integer = 0 To rts.length - 1
            If val > "" Then
                val = val & " And "
            End If
            val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i)
        Next
        If flt > "" Then
            flt = flt & " Or (" & val & ")"
        Else
            flt = val
        End If
    End If
Next

Tables("费用部门").Filter  = flt

 

请在该代码的基础上,帮我更改一下,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/24 10:31:00 [只看该作者]

你最好做个例子发上来,包括这个表,以及你设计的窗口,方便别人帮你调试分析。

因为任何人写代码,都不会一气呵成,都需要个试验分析的过程。

这种具体的问题,你不提供一个例子,别人很难辅助到你。


 回到顶部