以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]筛选数增加根节点的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=35085)

--  作者:wyanji
--  发布时间:2013/6/23 22:49:00
--  [求助]筛选数增加根节点的代码

我的需求:

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


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

 

目前的实现过程:

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

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

 

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

 

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

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


--  作者:有点甜
--  发布时间: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
--  发布时间: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

 

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


--  作者:狐狸爸爸
--  发布时间:2013/6/24 10:31:00
--  

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

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

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