以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]表事件datarowadded 执行时,当前行是新增行还是新增之前的当前行?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=104300)

--  作者:whyxd
--  发布时间:2017/7/27 8:44:00
--  [求助]表事件datarowadded 执行时,当前行是新增行还是新增之前的当前行?
父表:"表A"
子表:"表B" 
表A:表事件 datarowadded 
Dim r1 As DataRow
    For i As Integer = 1 To 11
        r1 =  DataTables("表B").AddNew           
    Next
表B: 表事件 BeforeAddDataRow
If Tables("表A").current.Locked = True Then
e.Cancel = True
End If

这样如果"表A"当前行是被锁定的,"表A"新增行的时候,"表B"就不会增加行。

怎么破???

--  作者:有点甜
--  发布时间:2017/7/27 8:49:00
--  

1、表A的新增行,改代码为 Tables("表a").AddNew

 

2、也可以这样写

 

   SystemReady = false

   For i As Integer = 1 To 11

        r1 =  DataTables("表B").AddNew           
   Next
   SystemReady = true

--  作者:whyxd
--  发布时间:2017/7/27 16:07:00
--  回复:(有点甜)1、表A的新增行,改代码为 Tables("表...
我本来就是用的 Tables("表a").AddNew 新增行

SystemReady = false

   For i As Integer = 1 To 11

        r1 =  DataTables("表B").AddNew           
   Next
   SystemReady = true
"表B"可以正常增加行,只是SystemReady 是什么作用?用这种方法,"表B" 中的datarowadded事件又不起作用了。

--  作者:有点甜
--  发布时间:2017/7/27 17:05:00
--  
    Dim r1 As DataRow
    vars("暂停") = true
    For i As Integer = 1 To 11
        r1 =  DataTables("表B").AddNew           
    Next
    vars("暂停") = false
 
----------------
 
If vars("暂停") = False AndAlso Tables("表A").current.Locked = True Then
    e.Cancel = True
End If

--  作者:whyxd
--  发布时间:2017/7/27 18:48:00
--  回复:(有点甜)    Dim r1 As Dat...
vars 好用,我用它来调整吧。多谢指点。