Foxtable(狐表)用户栏目专家坐堂 → [求助]父表行锁定,则关联子表不能新增数据


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

主题:[求助]父表行锁定,则关联子表不能新增数据

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


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
[求助]父表行锁定,则关联子表不能新增数据  发帖心情 Post By:2013/6/18 11:23:00 [只看该作者]

各位专家好!

 

我在关联子表的 BeforeAddDataRow 事件中输入代码, 希望在新增数据时: 如果父表的相关行锁定的话则不能新增.

代码如下:

 

Dim pr As DataRow = e.DataRow.GetParentRow("父表")
If pr.Locked = True Then
    e.Cancel = True
End If

运行中报错.

请教一下, 是哪里错了?

谢了!


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/18 11:28:00 [只看该作者]

报什么错?

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


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
  发帖心情 Post By:2013/6/18 11:31:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:报错.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
  发帖心情 Post By:2013/6/18 11:32:00 [只看该作者]

不知道是不是E参数的问题,因为下面看起来好像只有两个参数:Datatable和Cancel

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/18 11:35:00 [只看该作者]

可能有的行没有父行,所以你得判断一下:

 

Dim pr As DataRow = e.DataRow.GetParentRow("父表")

if pr Isnot Nothing Then
    If pr.Locked = True Then
        e.Cancel = True
    End If

End If


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


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
  发帖心情 Post By:2013/6/18 11:39:00 [只看该作者]

看起来我的代码应该没有问题,加了判断后依然出错,难道是系统Bug?


图片点击可在新窗口打开查看此主题相关图片如下:baocuo1.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/18 11:41:00 [只看该作者]

上例子

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/18 11:42:00 [只看该作者]

你设置在BeforeAddDataRow事件,那么出错是肯定的,这个事件是增加行前执行,e.dataRow是没有值的。

 

Dim pr As Row = Tables("父表").Current
if pr Isnot Nothing Then
    If pr.Locked = True Then
        e.Cancel = True
    End If
End If

你看看这个事件的说明:

http://www.foxtable.com/help/topics/0629.htm

 


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


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
  发帖心情 Post By:2013/6/18 11:47:00 [只看该作者]

原来是这样. 多谢指导.

 回到顶部