以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 目录树问题求教! (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127456)
|
-- 作者:lisheng1971
-- 发布时间: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
-- 发布时间:2018/11/14 15:16:00
--
应该是点击目录树,当前的页面随之变动
|
-- 作者:lisheng1971
-- 发布时间:2018/11/14 15:30: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
|
-- 作者:lisheng1971
-- 发布时间: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()
版主,这段代码好象也能起到我想要的效果
|
-- 作者:有点甜
-- 发布时间:2018/11/14 18:10:00
--
回复楼上,那样也可以。
但你这样做,每次三个表的数据都重新加载了,效率不高。
|
-- 作者:lisheng1971
-- 发布时间: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
版主,这个没搞明白,如果用上述代码,放在目录树的哪个事件里?但好象没有用,是我代码没写好?
|
-- 作者:有点甜
-- 发布时间: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
-- 发布时间:2018/11/15 10:19:00
--
此主题相关图片如下:1542248327(1).png

在目录树的NodeMouseClick事件里,上述代码运行报错
|
-- 作者:lisheng1971
-- 发布时间: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

|