以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]目录树下拉时的筛选  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64115)

--  作者:blsu33
--  发布时间:2015/2/5 11:11:00
--  [求助]目录树下拉时的筛选
老师,
    目录树下拉时怎么能根据下拉文本框的名称或是表的列明进行自动筛选呢

附件仅仅是例子实际不会用在这个表中


目录树 有01 财务部  02 结算部
 

期望点击名称 为 财务部DropDownBox 显示 目录树DropDownForm 的节点 01 财务的部分 
同样,点击名称 为 结算部DropDownBox 显示 目录树DropDownForm 的节点 02 结算部的部分

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:部门档案.rar


[此贴子已经被作者于2015-2-6 10:15:53编辑过]

--  作者:Bin
--  发布时间:2015/2/5 11:14:00
--  
参考 http://www.foxtable.com/help/topics/2465.htm


--  作者:blsu33
--  发布时间:2015/2/5 12:07:00
--  
老师,
   如果有递归函数的情况 是否可以有快捷的方式

\'Dim txt As WinForm.DropDownBox = Forms("目录树的筛选").DropDownBox
\'Dim MLS As WinForm.Form = Forms("目录树")
\'Select txt.Name
    \'Case "财务部"
        \'Dim tr As WinForm.TreeView = e.Form.Controls("部门档案.tv")
        \'Dim nd As WinForm.TreeNode
        \'Dim dt As DataTable = DataTables("部门档案")
        \'tr.StopRedraw()
        \'tr.Nodes.Clear
        \'Dim gz As String = DataTables("分类编码方案").Find("基础档案名称 = \'部门档案\'")("编码规则")
        \'For Each dr As DataRow In dt.Select("","编码规则")
            \'If dr.IsNull("编码规则") = False AndAlso dr("编码规则").Length = val(gz(0)) Then
                \'nd = tr.Nodes.Add(dr("编码规则"),dr("编码规则") & " " & dr("编码名称"))
                \'Functions.Execute("AddChildren",nd,dt,gz)
            \'End If
        \'Next
        \'TR.Nodes(01).EnsureVisible-------------------------------------------------------------财务部是01
        \'tr.ResumeRedraw()
        \'
        \'
    \'Case "结算部"
        \'Dim tr As WinForm.TreeView = e.Form.Controls("部门档案.tv")
        \'Dim nd As WinForm.TreeNode
        \'Dim dt As DataTable = DataTables("部门档案")
        \'tr.StopRedraw()
        \'tr.Nodes.Clear
        \'Dim gz As String = DataTables("分类编码方案").Find("基础档案名称 = \'部门档案\'")("编码规则")
        \'For Each dr As DataRow In dt.Select("","编码规则")
            \'If dr.IsNull("编码规则") = False AndAlso dr("编码规则").Length = val(gz(0)) Then
                \'nd = tr.Nodes.Add(dr("编码规则"),dr("编码规则") & " " & dr("编码名称"))
                \'Functions.Execute("AddChildren",nd,dt,gz)
            \'End If
        \'Next
        \'tr.ResumeRedraw()
\'End Select

--  作者:有点甜
--  发布时间:2015/2/5 14:09:00
--  

下拉之前赋值。

 

vars("部门编号") = "01"

 

 

DropDownOpening事件


Dim tr As WinForm.TreeView = e.Form.Controls("部门档案.tv")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("部门档案")
tr.StopRedraw()
tr.Nodes.Clear
Dim gz As String = DataTables("分类编码方案").Find("基础档案名称 = \'部门档案\'")("编码规则")
For Each dr As DataRow In dt.Select("部门编号 like \'" & vars("部门编号") & "%\'","编码规则")
    If dr.IsNull("编码规则") = False AndAlso dr("编码规则").Length = val(gz(0)) Then
        nd = tr.Nodes.Add(dr("编码规则"),dr("编码规则") & " " & dr("编码名称"))
        Functions.Execute("AddChildren",nd,dt,gz)
    End If
Next
tr.ResumeRedraw()


--  作者:blsu33
--  发布时间:2015/2/6 11:38:00
--  
有点甜老师,
   图片点击可在新窗口打开查看按照代码没实现目的,一定是我写的有问题,烦您在帮忙看下,谢谢。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报价.rar



--  作者:blsu33
--  发布时间:2015/2/6 11:40:00
--  
.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.11.11.1
错误所在事件:颜色,DropDownOpening
详细错误信息:
Object reference not set to an instance of an object.


--  作者:有点甜
--  发布时间:2015/2/6 11:43:00
--  
    
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报价.foxdb


--  作者:blsu33
--  发布时间:2015/2/6 12:00:00
--  
快乐崇拜