以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 内部函数如何添加筛选条件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158595) |
-- 作者:weibu -- 发布时间:2020/11/25 19:04:00 -- 内部函数如何添加筛选条件 老师下面是我创建了内部函数,现在我想加筛选条件dim filter as string = Functions.Execute("iload","部门信息","department"),这个filter加到哪个位置?代码如何写?filter是获取的满足条件的departID, filter = "departid in (\'" & str.Replace(",","\',\'") & "\')" 我想达到生成的目录树是在他可查看部门的权限范围内 Dim nd As WinForm.TreeNode = args(0) Dim dt As DataTable = args(1) Dim drs As List(of DataRow) = dt.Select("[parentID] = \'" & nd.name & "\' and filter ","order") For Each dr As DataRow In drs Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("departID"),dr("departname")) Functions.Execute("AddChildren",cd,dt) Next
[此贴子已经被作者于2020/11/25 19:07:58编辑过]
|
-- 作者:weibu -- 发布时间:2020/11/26 8:24:00 -- 老师还有个问题,就是这个是递归函数的案例。必须要求有数据的父键[parentID] 为空的存在,否则就无法调用生成目录树?我想根据filter仅能查看销售部以下的部门目录树,怎么修改代码? |
-- 作者:有点蓝 -- 发布时间:2020/11/26 8:51:00 -- 代码没头没尾的,没看懂。请上传实例说明 |
-- 作者:weibu -- 发布时间:2020/11/26 9:06:00 -- 老师就是咱们CaseStudy目录下的文件: 递归函数.Table这个,我定义了一个筛选变量filter,如果fiter = "键 In (" & ids & ")" ;我想修改代码仅按filter生成部分目录树。 |
-- 作者:weibu -- 发布时间:2020/11/26 9:12:00 -- 老师现在如果fiter = "键 In (" & ids & ")" ; ids中不存在父键为空的行数据,就根本不生产目录树。这样就导致我想仅生成h-i-g这个目录树就无法生成; 老师我想在AddChildren函数上直接加上filter条件,这样调用起来更方便?是否可以
[此贴子已经被作者于2020/11/26 9:15:54编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/11/26 9:26:00 -- 作为函数参数传进来 Dim nd As WinForm.TreeNode = args(0) Dim dt As DataTable = args(1) dim filter as string = args(2) Dim drs As List(of DataRow) = dt.Select("[parentID] = \'" & nd.name & "\' and " & filter,"order") For Each dr As DataRow In drs Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("departID"),dr("departname")) Functions.Execute("AddChildren",cd,dt,filter) Next |
-- 作者:weibu -- 发布时间:2020/11/26 9:45:00 -- 老师生成目录树的代码如何修改?现在如果不存在父键为空的行,就没法生成目录树 Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") Dim nd As WinForm.TreeNode Dim dt As DataTable = DataTables("表A") tr.StopRedraw() tr.Nodes.Clear \'tr.Nodes.Add("全部") For Each dr As DataRow In dt.datarows If dr.IsNull("父键") Then nd = tr.Nodes.Add(dr("键"),dr("标题")) Functions.Execute("AddChildren",nd,dt) End If Next tr.ResumeRedraw() |
-- 作者:有点蓝 -- 发布时间:2020/11/26 9:55:00 -- ("表A")肯定要包含父键为空的行。 另外做一个递归函数,做加载条件的时候,把ids里所有的键的上级键全部取出来作为加载条件
[此贴子已经被作者于2020/11/26 9:56:01编辑过]
|
-- 作者:weibu -- 发布时间:2020/11/26 10:33:00 -- 老师我想生成销售部及销售部下级部门的目录树,就没法生成了?那我可不可以指定一个键ID作为目录树的顶级,让我的需求实现?代码该如何修改 |
-- 作者:有点蓝 -- 发布时间:2020/11/26 10:35:00 -- Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") Dim nd As WinForm.TreeNode Dim dt As DataTable = DataTables("表A") tr.StopRedraw() tr.Nodes.Clear \'tr.Nodes.Add("全部") For Each dr As DataRow In dt.datarows If dr("父键") = "xx键" Then nd = tr.Nodes.Add(dr("键"),dr("标题")) Functions.Execute("AddChildren",nd,dt) End If Next tr.ResumeRedraw()
|