Foxtable(狐表)用户栏目专家坐堂 → 记录窗口的显示与隐藏


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

主题:记录窗口的显示与隐藏

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


加好友 发短信
等级:四尾狐 帖子:806 积分:6312 威望:0 精华:0 注册:2013/2/18 17:46:00
记录窗口的显示与隐藏  发帖心情 Post By:2023/10/8 20:20:00 [只看该作者]

Table上有很多列,设计了多个记录窗口,根据某列的内容不同而显示对应的记录窗口.代码如下:

在表事件中CurrentChanged

Dim rgd2 As WinForm.RecordGrid = e.Form.Controls("RecordGrid1")
rgd2.Table = Tables("报价系统_Table4") '指定绑定表
If Tables("报价系统_Table4").current("工步") = "车床"Then
    e.Form.Controls("RecordGrid2").Visible = False   隐藏所有记录窗口,代码怎么写?
    e.Form.Controls("RecordGrid3").Visible = False
e.Form.Controls("RecordGrid1").Visible = True'打开RecordGrid1

ElseIf Tables("报价系统_Table4").current("工步") = "磨床"Then
    e.Form.Controls("RecordGrid1").Visible = False
    e.Form.Controls("RecordGrid2").Visible = False
e.Form.Controls("RecordGrid3").Visible = True'打开RecordGrid1
End If
rgd2.Build() '重新生成记录窗口

第一个问题:选择不同数据行后,先要把所有记录窗口隐藏,隐藏所有记录窗口,代码怎么写?
第二个问题:当TABLE中没有数据时,提示运行错误:未将对象引用设置到对象的实例。怎么解决?

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/8 20:32:00 [只看该作者]

1、就是1楼的代码,逐个设置控件的Visible = False

2、http://www.foxtable.com/webhelp/topics/0445.htm,理解一下什么是“完美”代码

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


加好友 发短信
等级:四尾狐 帖子:806 积分:6312 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/10/8 21:33:00 [只看该作者]

Dim rgd2 As WinForm.RecordGrid = e.Form.Controls("RecordGrid1")
rgd2.Table = Tables("生产调度_Table4") '指定绑定表
If Tables("生产调度_Table4").Current IsNot Nothing And Tables("生产调度_Table4").current("工步") = "车床"Then
    e.Form.Controls("RecordGrid2").Visible = False 
    e.Form.Controls("RecordGrid3").Visible = False
e.Form.Controls("RecordGrid1").Visible = True'打开RecordGrid1

Else If Tables("生产调度_Table4").Current IsNot Nothing And Tables("生产调度_Table4").current("工步") = "磨床"Then
    e.Form.Controls("RecordGrid1").Visible = False
    e.Form.Controls("RecordGrid2").Visible = False
e.Form.Controls("RecordGrid3").Visible = True'打开RecordGrid1
End If
rgd2.Build() '重新生成记录窗口

加上红色代码,还是提示运行错误:未将对象引用设置到对象的实例?当在Tables("生产调度_Table4")上新增一行后,可正常运行.

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/8 21:46:00 [只看该作者]

方法1、先判断Current IsNot Nothing,不要和其它条件放到一起
2、http://www.foxtable.com/webhelp/topics/0220.htm,分清楚And和AndAlso的区别

 回到顶部