以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  BeforeSaveDataRow  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179761)

--  作者:edisontsui
--  发布时间:2022/9/7 16:14:00
--  BeforeSaveDataRow
BeforeSaveDataRow 有如下代码:

    Dim dr As DataRow = e.DataRow
    If dr("开料参数").contains("BL") OrElse dr("开料参数").contains("BIG")  Then\'付立2019/5/3要求增加开料参数含BIG/BL的不要删除掉
    Else
        dr.delete
    End If

但是运行时会出现下面提示:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:表,弯头开料单,BeforeSaveDataRow
详细错误信息:
调用的目标发生了异常。
不能在 OnRowDeleting 事件内部调用 Delete。引发 exception 以取消此删除。

请问是什么原因?谢谢。

--  作者:有点蓝
--  发布时间:2022/9/7 16:17:00
--  
dataRowDeleting 事件有什么代码?
--  作者:edisontsui
--  发布时间:2022/9/7 16:43:00
--  
dataRowDeleting 里面没有代码,dataRowDeleted 里面也没有代码。
--  作者:有点蓝
--  发布时间:2022/9/7 16:51:00
--  
我测试没有问题。请上传实例说明
--  作者:edisontsui
--  发布时间:2022/9/7 17:16:00
--  
现在又有另一个问题:有一个数据表,在输入数据之后,进行保存,一保存,这行就会被删除掉。不知道什么原因。
--  作者:有点蓝
--  发布时间:2022/9/7 17:40:00
--  
一般都是代码的问题,像一楼这种代码不就是不符合条件的就删除了吗!

新建一个项目,设置数据源,连接这个表测试有没有问题?
[此贴子已经被作者于2022/9/7 17:40:55编辑过]

--  作者:edisontsui
--  发布时间:2022/9/7 19:14:00
--  
接2楼:我发现 dataRowDeleting 里面有如下代码:

Dim dh As String = e.DataRow("年份票号制造产品号")
e.DataRow("年份票号制造产品号") = Nothing
e.DataRow.save 
DataTables("现场单总表").DataCols("年份票号制造产品号").RaiseDataColChanged("年份票号制造产品号 = \'" & dh & "\'")

估计是这些代码影响,不知道怎么修改它。

--  作者:有点蓝
--  发布时间:2022/9/8 8:31:00
--  
BeforeSaveDataRow 

    Dim dr As DataRow = e.DataRow
    If dr("开料参数").contains("BL") OrElse dr("开料参数").contains("BIG") orelse dr.isnull("年份piao号制造产品号")  Then\'付立2019/5/3要求增加开料参数含BIG/BL的不要删除掉
    Else
        dr.delete
    End If