Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
这个,我也求助过,没有人能解决。
设置在BeforeSelChange事件:
If e.OldRange.RowSel <> e.NewRange.RowSel Then
e.Table.Current.Save()
End If
我在采购订单表的BeforeSelChange事件设置代码为:
If e.Table.Current IsNot Nothing Then '如果当前行是数据行,也就是Current属性不为空
If e.NewRange.RowSel <> e.OldRange.RowSel Then '而且即将选择另一行
If e.Table.Current.IsNull("供应商_名称") OrElse e.Table.Current.IsNull("供应商_帐户名称") OrElse e.Table.Current.IsNull("采购用途") Then '如果编号列为空
MessageBox.Show("采购订单表中当前行的'供应商名称;供应商帐户名称,采购用途'均为必输项不能为空,请完整录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) '提示用户
e.Cancel = True '那么取消操作
Else
e.Table.Current.Save()
End If
End If
End If
窗口增加行按钮代码为:
Tables("采购订单").AddNew()
e.Form.Controls("DateTimePicker1").Select()
当按窗口增加行按钮时,项目就自动关闭退出了,这是为什么?
初步了解你的需求,还是上传个项目过来,这样你的问题才会彻底解决。
因为可以解决的办法是有很多种的。
4楼代码的逻辑有问题,你应该另外在BeforeAddDataRow事件也设置一下代码:
http://help.foxtable.com/topics/0629.htm
当前行不符合条件,就禁止增加行。
1、直接这样:
If e.NewRange.RowSel <> e.OldRange.RowSel Then '而且即将选择另一行
If e.Table.Current.IsNull("供应商_名称") OrElse e.Table.Current.IsNull("供应商_帐户名称") OrElse e.Table.Current.IsNull ("采购用途") Then '如果编号列为空
MessageBox.Show("采购订单表中当前行的'供应商名称;供应商帐户名称,采购用途'均为必输项不能为空,请完整录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) '提示用户
e.Cancel = True '那么取消操作
Else
e.Table.Current.Save()
End If
End If
2、屏蔽掉这一句,以后手工选择:
e.Form.Controls("DateTimePicker1").Select()
主要怀疑第二点,当Tables("采购订单").AddNew()触发事件,正在执行的同时e.Form.Controls("DateTimePicker1").Select()让采购订单表表失去了焦点,导致该事件的 e.Table.Current 执行错误。
仅个人认为,可能是上述逻辑错误,没测试,也可能判断不准确,如果您测试确实如此,那就有解决办法!