Foxtable(狐表)用户栏目专家坐堂 → 目录树问题求教!


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

主题:目录树问题求教!

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


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
目录树问题求教!  发帖心情 Post By:2018/11/14 15:14:00 [只看该作者]

有窗口1,窗口中有目录树和页面合集控件各1个;有表A、B、C,每表都有相同名的列1、列2,表A、B、C分别绑定在页面合集中的page1\page2\page3中,

现想实现:

      当在page1时,目录树显示的是表A的列1、列2的内容;且点击相应内容,表A的内容也随之变化显示;

      当在page2时,目录树显示的是表B的列1、列2的内容;且点击相应内容,表B的内容也随之变化显示;

      当在page3时,目录树显示的是表C的列1、列2的内容;且点击相应内容,表C的内容也随之变化显示;

请教版主,这个是否可行?这个代码应如何写?


图片点击可在新窗口打开查看此主题相关图片如下:1542179635(1).png
图片点击可在新窗口打开查看

 

上图的目录树只能控制1个表,是否可以1个目录树控制几个表?


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


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/11/14 15:16:00 [只看该作者]

应该是点击目录树,当前的页面随之变动

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


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/11/14 15:30:00 [只看该作者]

版主在吗?烦请指点一下,谢谢!


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/14 16:18:00 [只看该作者]

目录树那里,加上判断,如

 

Dim tab As WinForm.TabControl = e.Form.controls("tabcontrol1")
msgbox(tab.SelectedPage.Text)
If tab.SelectedPage.Text = "page1" Then

 

ElseIf tab.SelectedPage.Text = "page2" Then

 

End If


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


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/11/14 16:23:00 [只看该作者]

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()
DataTables("鉴定考核表").LoadFilter = Filter
DataTables("鉴定考核表").Load()

 

版主,这段代码好象也能起到我想要的效果


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/14 18:10:00 [只看该作者]

回复楼上,那样也可以。

 

但你这样做,每次三个表的数据都重新加载了,效率不高。


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


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/11/15 9:55:00 [只看该作者]

以下是引用有点甜在2018/11/14 16:18:00的发言:

目录树那里,加上判断,如

 

Dim tab As WinForm.TabControl = e.Form.controls("tabcontrol1")
msgbox(tab.SelectedPage.Text)
If tab.SelectedPage.Text = "page1" Then

 

ElseIf tab.SelectedPage.Text = "page2" Then

 

End If

 

版主,这个没搞明白,如果用上述代码,放在目录树的哪个事件里?但好象没有用,是我代码没写好?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/15 10:02:00 [只看该作者]

比如

 

Dim tab As WinForm.TabControl = e.Form.controls("tabcontrol1")
msgbox(tab.SelectedPage.Text)
If tab.SelectedPage.Text = "page1" Then
   
    DataTables("报名登记表").LoadFilter = Filter
    DataTables("报名登记表").Load()
   
ElseIf tab.SelectedPage.Text = "page2" Then
   
    DataTables("鉴定考核表").LoadFilter = Filter
    DataTables("鉴定考核表").Load()
   
End If


 


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


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/11/15 10:19:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1542248327(1).png
图片点击可在新窗口打开查看

 

在目录树的NodeMouseClick事件里,上述代码运行报错图片点击可在新窗口打开查看


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


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/11/15 10:27:00 [只看该作者]

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

Dim tab As WinForm.TabControl = e.Form.controls("tabcontrol1")
msgbox(tab.SelectedPage.Text)
If tab.SelectedPage.Text = "报名审核" Then
    DataTables("报名登记表").LoadFilter = Filter
    DataTables("报名登记表").Load()
ElseIf tab.SelectedPage.Text = "考核评审" Then
    DataTables("鉴定考核表").LoadFilter = Filter
    DataTables("鉴定考核表").Load()
End If

 

版主,自己搞定了,是我代码没完整,但就是每次点目录树的节点时,会弹下面图中的提示,点了“确定”下行,这是不是很麻烦,可以不要提示吗?


图片点击可在新窗口打开查看此主题相关图片如下:1542248782(1).png
图片点击可在新窗口打开查看

 回到顶部
总数 15 1 2 下一页