以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  新增第一条记录复制到另一张表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117041)

--  作者:zoyong
--  发布时间:2018/4/4 16:36:00
--  新增第一条记录复制到另一张表

BeforeSaveDataRow    原代码:

Dim fdr As DataRow = DataTables("人工费主表").find("关联编号 = \'" & e.DataRow("关联编号") & "\'")
If fdr Is Nothing Then
    fdr = DataTables("人工费主表").AddNew
    fdr("项目名称") = e.DataRow("项目名称")
    fdr("工资月份") = e.DataRow("工资月份")
    fdr("关联编号") = e.DataRow("关联编号")
    fdr("账务日期") = e.DataRow("账务日期")
    fdr("档案编号") = e.DataRow("档案编号")
    DataTables("人工费主表").Save
End If

 

连续新增按钮代码:

Tables("人工费明细表").Current.Save

Dim cr As Row = Tables("人工费明细表").current
Dim nr As Row = Tables("人工费明细表").AddNew()
nr("项目名称") = cr("项目名称")
nr("档案编号") = cr("档案编号")
nr("账务日期") = cr("账务日期")
nr("工资月份") = cr("工资月份")

 

 

上面的代码可用,单条记录保存不会出错

就是在第一条记录新建,然后连续新增时会出错下面提示:

 

 

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.9.1
错误所在事件:表,人工费明细表,BeforeSaveDataRow
详细错误信息:
调用的目标发生了异常。
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据


--  作者:有点甜
--  发布时间:2018/4/4 16:41:00
--  

应该是你 【人工费主表】 DataRowAdded或datacolchanged 事件,有错误代码导致的吧?

 

试试改成

 

Dim fdr As DataRow = DataTables("人工费主表").find("关联编号 = \'" & e.DataRow("关联编号") & "\'")
If fdr Is Nothing Then
    systemready = False
    fdr = DataTables("人工费主表").AddNew
    fdr("项目名称") = e.DataRow("项目名称")
    fdr("工资月份") = e.DataRow("工资月份")
    fdr("关联编号") = e.DataRow("关联编号")
    fdr("账务日期") = e.DataRow("账务日期")
    fdr("档案编号") = e.DataRow("档案编号")
    DataTables("人工费主表").Save
    systemready = True
End If