Foxtable(狐表)用户栏目专家坐堂 → 目录树如何按条件显示数据?


  共有1092人关注过本帖平板打印复制链接

主题:目录树如何按条件显示数据?

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


加好友 发短信
等级:五尾狐 帖子:1096 积分:7235 威望:0 精华:0 注册:2020/11/4 22:15:00
目录树如何按条件显示数据?  发帖心情 Post By:2023/7/28 14:57:00 [只看该作者]

1、然后新建一个窗口,窗口中插入一个目录树(TreeView),窗口的AfterLod事件代码设为:

Dim cmd As New SQ-LCommand
Dim
 dt As DataTable
cmd
.CommandText = "SELEC-T DISTINCT 产品,客户 From {订单}"
dt
 = cmd.ExecuteReader()
Dim
 trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv
.BuildTree(dt,"产品|客户")
trv
.Nodes.Insert("加载所有数据",0)


这样一旦打开窗口,该目录树列出所有的产品和客户。
由于订单表只是加载了部分数据,所以我们不能直接根据订单表来生成目录树,因为订单表的数据不完整,只能用ExecuteReader方法直接从后台提取完整的产品和客户数据。
注意Select语句中,一定要有DISTINCT关键词,这样返回的才是不重复的产品和客户名单,虽然对目录树的生成没有影响,但是会大大降低数据加载量,对于网络环境,这是非常重要的。

2、最后将目录树的NodeMouseDoubleClick事件设为:

Dim Filter As String
If
 e.node.Text = "加载所有数据" Then
    Filter = ""

Else

    Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
    
Select Case e.Node.Level
        Case 0
            Filter ="[
产品] = '" & dr("产品") & "'"
        Case 1
            Filter ="[
产品] = '" & dr("产品") & "' And [客户] = '" & dr("客户") & "'"
    End Select

End
 If
DataTables
("订单").LoadFilter = Filter
DataTables
("订单").Load()

这样我们只需双击某个节点,既可动态加载对应的订单。

图片点击可在新窗口打开查看




目录树右边的数据,如何实现显示目录树的条件的数据,如上面代码,以产品和客户为目录,由于不涉及雇员、折扣列,让这两列的数据不显示?


如图



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






 回到顶部