以文本方式查看主题
- Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2)
---- 求助 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=161579)
|
-- 作者:fireboy
-- 发布时间:2021/3/23 10:57:00
-- 求助
如果在主表行锁定的情况下,限制子表不能增加行,
目前在beforeAddDataRow事件中加入代码如下
If e.DataRow.getparentrow("甲供领料单").Locked =True e.DataTable.AllowAddNew = False
End If
运行时出错:提示如下:
后,还是可以增加新行
|
-- 作者:有点蓝
-- 发布时间:2021/3/23 11:03:00
--
新增的行还没有值,所以getparentrow肯定都是空的。
只能这样
dim r as row = tabels("父表名称").current if r is nothing orelse r.Locked =True e.Cancel = True End If
|
-- 作者:fireboy
-- 发布时间:2021/3/23 11:19:00
--
不行呀,新增的行没有值,但是getparentrow肯定不是空的呀。
|
-- 作者:有点蓝
-- 发布时间:2021/3/23 11:22:00
--
是不是空的,自己测试看看
dim r as datarow = e.DataRow.getparentrow("甲供领料单") msgbox(r is nothing)
|
-- 作者:fireboy
-- 发布时间:2021/3/23 11:26:00
--
求助!
此主题相关图片如下:snipaste_2021-03-23_11-22-44.jpg

|
-- 作者:有点蓝
-- 发布时间:2021/3/23 11:27:00
--
看2楼
|
-- 作者:fireboy
-- 发布时间:2021/3/23 11:38:00
--
现在我在datarowadding事件中加入如下代码: Dim r As DataRow = e.DataRow.getparentrow("甲供领料单") If r Is Nothing Or r.Locked =False e.Cancel = True End If
在增加行时,显示错误: 调用的目标发生了异常。 未将对象引用设置到对象的实例。
|
-- 作者:有点蓝
-- 发布时间:2021/3/23 11:47:00
--
If r Is Nothing Orelse r.Locked =False
|
-- 作者:fireboy
-- 发布时间:2021/3/23 11:52:00
--
 运行不出错了,但是还是增加了一行,没有取消操作呀
|
-- 作者:有点蓝
-- 发布时间:2021/3/23 12:01:00
--
DataRowAdding没有取消功能。另外DataRowAdding的行肯定也不会有getparentrow的父表行。
只能是2楼的方式判断,或者自己做个新增按钮替代菜单的新增功能
|