以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99465)

--  作者:xluoping
--  发布时间:2017/4/19 20:28:00
--  此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2017.3.18.1
错误所在事件:
详细错误信息:
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

新增行后自动打开一个窗口,然后按取消按钮(不保存行,退出窗口),出现以上错误!

关键是  错误所在事件:  没有内容,无法调试图片点击可在新窗口打开查看

请老师帮助!

表  “任务”  对应设置了以下代码:

BeforeAddDataRow


If CurrentTable.Name = "任务" Then
    If CurrentTable.Current IsNot Nothing Then
    Else
        e.Cancel = True
        MessageBox.Show("请在项目表下新建任务!","提示")
    End If
End If


DataRowAdding

If CurrentTable.Name = "任务" Then
    e.DataRow("项目ID") = CurrentTable.Current("项目ID")
End If


DataRowAdded


Dim db As DataTable = e.DataTable
Dim dr As DataRow = e.DataRow
dr("创建人") = _username
dr("紧急程度") = "普通"
Dim i As Integer = Tables("任务").FindRow(e.DataRow)
If i >= 0 Then
    Tables("任务").Position = i
End If
Forms("任务").Open()



--  作者:有点色
--  发布时间:2017/4/19 20:32:00
--  

这段代码去掉,看是否还报错

 

Dim i As Integer = Tables("任务").FindRow(e.DataRow)
If i >= 0 Then
    Tables("任务").Position = i
End If

 

你为什么要写这段?你新增行的时候直接写 Tables("任务").AddNew 不就行了?


--  作者:xluoping
--  发布时间:2017/4/20 10:22:00
--  
Dim i As Integer = Tables("任务").FindRow(e.DataRow)
If i >= 0 Then
    Tables("任务").Position = i
End If

这段代码,是因为,我增加行是在 子表中增加:Tables("项目.任务"),或者Tables("客户.项目.任务"),而窗口绑定的字段是 Tables("任务")

--  作者:有点色
--  发布时间:2017/4/20 10:27:00
--  

 你撤销的时候,尝试不触发事件

 

http://www.foxtable.com/webhelp/scr/2218.htm

 

 如果有问题,做个例子上来看看。