以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何限定同时只能新增或者编辑一行?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=47275)

--  作者:linshibin
--  发布时间:2014/3/7 15:09:00
--  如何限定同时只能新增或者编辑一行?

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

 

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

 

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


--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2014/3/7 15:38:00
--  
多谢啦