Foxtable(狐表)用户栏目专家坐堂 → 用列名作为筛选树节点名,怎样做截图那样


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

主题:用列名作为筛选树节点名,怎样做截图那样

帅哥哟,离线,有人找我吗?
有点蓝
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/19 20:31:00 [只看该作者]

For Each c As String In str
    Dim n As WinForm.TreeNode = trv.Nodes.Add(c,c)
    For Each c2 As String In DataTables("表A").GetValues(c,c & " is not null")
        n.Nodes.Add(c2,c2 & "(" & DataTables("表A").Compute("count(姓名)",c & "='" & c2 & "'") & "人)")
    Next
Next

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


加好友 发短信
等级:幼狐 帖子:100 积分:992 威望:0 精华:0 注册:2019/4/2 22:28:00
  发帖心情 Post By:2019/11/19 22:33:00 [只看该作者]

1、数据显示出来了,但点击节点后行记录却显示不出来。


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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/19 22:51:00 [只看该作者]

Dim Filter As String
Dim d1 As String
Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
'If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 1
            Filter = e.Node.ParentNode.Text & " = '" & e.Node.Text.Split("(")(0) & "'" 
    End Select
'End If
Tables("表A").Filter = Filter

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


加好友 发短信
等级:幼狐 帖子:100 积分:992 威望:0 精华:0 注册:2019/4/2 22:28:00
  发帖心情 Post By:2019/11/20 14:53:00 [只看该作者]

1、日期型的列生成节点,节点下的内容包含有时间,怎么去除?
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:日期包含时间.png
图片点击可在新窗口打开查看

2、修改了表内容,筛选树重新加载按钮代码怎样编写,按照帮助设置,结果目录树内容变重复了。


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

3、想将日期型节点做成图片中那样(按年生成),该怎样做?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试用.table


图片点击可在新窗口打开查看此主题相关图片如下:日期按年.png
图片点击可在新窗口打开查看








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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/20 15:02:00 [只看该作者]

afterload
Dim str() As String = {"部门","性别"} '定义筛选树中显示的列名
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

trv.Nodes.Insert("显示所有行",0)

For Each c As String In str
    Dim n As WinForm.TreeNode = trv.Nodes.Add(c,c)
    For Each c2 As String In DataTables("表A").GetValues(c,c & " is not null")
        'n.Nodes.Add(c2,c2)
        n.Nodes.Add(c2,c2 & "(" & DataTables("表A").Compute("count(部门)",c & "='" & c2 & "'") & "人)")
    Next
Next
Dim n2 As WinForm.TreeNode = trv.Nodes.Add("出生日期","出生日期")
For Each c2 As String In DataTables("表A").SQLGetValues("year(出生日期)","出生日期 Is not null")
    Dim y As Date = new Date(cint(c2),1,1)
    n2.Nodes.Add(c2,c2 & "(" & DataTables("表A").Compute("count(出生日期)","出生日期>=#" & y & "# and 出生日期 < #" & y.AddYears(1) & "#") & "人)")
Next

查询
Dim Filter As String
Dim d1 As String
'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行

Select Case e.Node.Level
    Case 1
        If e.Node.ParentNode.Text = "出生日期" Then
            Dim y As Date = new Date(cint(e.Node.Text.Split("(")(0)),1,1)
            Filter = "出生日期 >= #" & y & "# and 出生日期 < #" & y.AddYears(1) & "#"
        Else
            Filter = e.Node.ParentNode.Text & " = '" & e.Node.Text.Split("(")(0) & "'"
        End If
End Select

Tables("表A").Filter = Filter

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


加好友 发短信
等级:幼狐 帖子:100 积分:992 威望:0 精华:0 注册:2019/4/2 22:28:00
  发帖心情 Post By:2019/11/21 11:36:00 [只看该作者]

下面代码能查找指定字段里列内容,但列单元格内容必须完整区配,怎样修改为模糊查找(即包含有,查找列内容即可)
Dim Lis As String = e.Form.Controls("ComboBox1").text
Dim Fin As String = e.Form.Controls("ComboBox2").text

Tables("基本信息").filter = Lis & " = '" & Fin & "'"

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/21 11:51:00 [只看该作者]

Tables("基本信息").filter = Lis & " like '%" & Fin & "%'"

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


加好友 发短信
等级:幼狐 帖子:100 积分:992 威望:0 精华:0 注册:2019/4/2 22:28:00
  发帖心情 Post By:2019/11/21 17:52:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:12.png
图片点击可在新窗口打开查看
增加一列基本工资,但筛选树生成这节点内容较多,想做个范围,在这个范围内就选筛在一起,如图片所示:

[此贴子已经被作者于2019/11/21 17:52:35编辑过]

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/21 17:58:00 [只看该作者]

参考日期的用法单独处理,筛选的时候,判断包含以下2个字就:Filter = “工资 <= 1000"
其它的就按照分隔符拆分

dim ar() as string = e.node.text.split("-")
Filter = "工资 >= " & ar(0) & " and 工资 <= " & ar(1)

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


加好友 发短信
等级:幼狐 帖子:100 积分:992 威望:0 精华:0 注册:2019/4/2 22:28:00
  发帖心情 Post By:2019/11/23 18:40:00 [只看该作者]

还是没搞好,另外双击哪些由列名生成的节点,全都是显示所有行,想改成保留筛选结果,而不是显示所有行.

 回到顶部
总数 87 上一页 1 2 3 4 5 6 7 8 9 下一页