以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口出错解决方法  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153776)

--  作者:13568958298
--  发布时间:2020/8/22 13:24:00
--  窗口出错解决方法

1、制作了一个录入窗口,绑定了姓名、数量、品名,同时设置了“增加行”、“删除行”,“上报”“上一行”“下一行”等按钮;正常情况下,先点击“新增行”再按顺序操作一切都OK,有一个新用户,他进入这个录入框,先新增行,一切OK,如果第一步不是先点新增行,点其他按钮或文本框就会报错:如下:

 

.NET Framework 版本:4.0.30319.1026
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,订单,TextBox3,Enter
详细错误信息:
Object reference not set to an instance of an object.

 

2、请教老师:如何解决,用户打开窗口时,先不加载任何内容;可以使用“上下行”按钮,“新增一行”按钮,其他按钮和输入框(文本框)不能使用或隐藏。谢谢!

[此贴子已经被作者于2020/8/22 13:25:26编辑过]

--  作者:有点蓝
--  发布时间:2020/8/22 13:37:00
--  
1、错误所在事件:窗口,订单,TextBox3,Enter,代码有问题,请检查

2、到窗口afterload事件控制即可,如:
e.Form.Controls("txtName").Visible = False:http://www.foxtable.com/webhelp/topics/0715.htm
e.Form.Controls("btnAdd").Enabled = False:http://www.foxtable.com/webhelp/topics/0714.htm

--  作者:13568958298
--  发布时间:2020/8/22 14:51:00
--  

1、TextBox3,Enter,代码

If User.name =  Tables("订单").current("姓名")  And Tables("订单").current.Isnull("业务状态") Then
     e.Sender.ReadOnly = BooleanEnum.False

Else
     e.Sender.ReadOnly = BooleanEnum.True
End If

 

2、这个按钮也会出同样的错:窗口,订单,Button2,Click

If Tables("订单").Current.Isnull("业务状态") Then
  Tables("订单").Current.Delete
Else
  MessageBox.show("已送审,不能删除")
End If

3、出错原因是不是:打开窗口后,什么都没有,_Identify还是空值,所以不存在所谓的行,所以代码对行的操作都是错误的?但不知道该怎么改

我想写一个判断语句

if Tables("订单").current.Isnull("_Identify") then  \'没有选中行时(这句代码有错,不知道该怎么调)

e.Form.Controls("txtName").Visible = False

endif

[此贴子已经被作者于2020/8/22 15:00:18编辑过]

--  作者:有点蓝
--  发布时间:2020/8/22 15:32:00
--  
Current使用之前都要先判断一下是否是空行:http://www.foxtable.com/webhelp/topics/0445.htm

If Tables("订单").Current IsNot Nothing Then

If User.name =  Tables("订单").current("姓名")  And Tables("订单").current.Isnull("业务状态") Then
     e.Sender.ReadOnly = BooleanEnum.False

Else
     e.Sender.ReadOnly = BooleanEnum.True
End If

End If

--  作者:13568958298
--  发布时间:2020/8/22 22:20:00
--  

问题解决了,谢谢指导