Foxtable(狐表)用户栏目专家坐堂 → 如何限定同时只能新增或者编辑一行?


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

主题:如何限定同时只能新增或者编辑一行?

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


加好友 发短信
等级:幼狐 帖子:150 积分:1625 威望:0 精华:0 注册:2012/2/10 9:26:00
如何限定同时只能新增或者编辑一行?  发帖心情 Post By:2014/3/7 15:09:00 [只看该作者]

由于系统用了网络情况下的自定义编号,然后关联表单用的是这个自定义编号来做的关联,再没有保存父表数据的情况下,直接添加关联行,等保存之后关联字段就会发生变化了。

 

如何限定一次父表数据保存之后,才能添加子表数据。

 

同时如何限制一次只能添加一行,或者编辑一行,防止用户在不同表单填写数据,由于数据没有填写完整,然后出现报错的情况。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/7 15:32:00 [只看该作者]

1、禁止父行没有保存的时候增加子行,可以在子表的BeforeAddDataRow事件中写上代码:

 

Dim r As Row = Tables("父表").Current
If r Is Nothing OrElse r.DataRow.RowState <> DataRowState.Unchanged Then
    e.cancel = True
End If

 

2、如果要一次处理一样,再加一点代码:

 

Dim r As Row = Tables("父表").Current
If r Is Nothing OrElse r.DataRow.RowState <> DataRowState.Unchanged Then
    e.cancel = True
End If
If r IsNot Nothing Then
    For Each dr As DataRow In r.DataRow.GetChildRows("子表") Then
        If dr.RowState <> DataRowState.Unchanged Then
            e.cancel = True
            Exit For
        End If
    End If
End If

 

 


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


加好友 发短信
等级:幼狐 帖子:150 积分:1625 威望:0 精华:0 注册:2012/2/10 9:26:00
  发帖心情 Post By:2014/3/7 15:38:00 [只看该作者]

多谢啦

 回到顶部