以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  删除行后关联母表的执行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170282)

--  作者:lal021962
--  发布时间:2021/7/20 16:24:00
--  删除行后关联母表的执行
在“销售定单明细表”中的datacolchanged中,加入以下代码:
If e.DataRow.delete Then
Dim pr As DataRow
        pr = DataTables("销售定单主表").Find("销售定单编号 = \'" & e.DataRow("销售定单编号") & "\'")
        If pr IsNot Nothing Then
            DataTables("销售定单主表").DataCols("销售定单编号").RaiseDataColChanged(pr)
        End If
End If

若表格保存后,执行以上代码无问题,但是在窗口未保存时,若删除新增销售明细单,会出现如下错误,请问如何更改代码:

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看



--  作者:有点蓝
--  发布时间:2021/7/20 16:31:00
--  
1楼是datacolchanged事件代码?

提示出错的是datarowdeleted事件

--  作者:lal021962
--  发布时间:2021/7/20 16:59:00
--  
两种事件都试过
都报错

--  作者:有点蓝
--  发布时间:2021/7/20 17:03:00
--  
2个事件的完整代码发上来啊!解决问题靠猜的么
--  作者:lal021962
--  发布时间:2021/7/20 17:06:00
--  
第一次是在datarowdeleted事件中添加代码如下:
Dim pr As DataRow
        pr = DataTables("销售定单主表").Find("销售定单编号 = \'" & e.DataRow("销售定单编号") & "\'")
        If pr IsNot Nothing Then
            DataTables("销售定单主表").DataCols("销售定单编号").RaiseDataColChanged(pr)
        End If

报如下错:

此主题相关图片如下:1.png
按此在新窗口浏览图片


--  作者:有点蓝
--  发布时间:2021/7/20 17:07:00
--  
datacolchanged事件代码?
--  作者:lal021962
--  发布时间:2021/7/20 17:16:00
--  
我重新写一遍吧
在datarowdeleted事件中添加代码如下:
Dim pr As DataRow
        pr = DataTables("销售定单主表").Find("销售定单编号 = \'" & e.DataRow("销售定单编号") & "\'")
        If pr IsNot Nothing Then
            DataTables("销售定单主表").DataCols("销售定单编号").RaiseDataColChanged(pr)
        End If

若表格保存后,执行以上代码无问题,但是在窗口未保存时,若删除新增销售明细单,会出现如下错误:

此主题相关图片如下:1.png
按此在新窗口浏览图片

第二次将datarowdeleted事件中删除以上代码,datacolchanged中填写
If e.DataRow.delete Then
Dim pr As DataRow
        pr = DataTables("销售定单主表").Find("销售定单编号 = \'" & e.DataRow("销售定单编号") & "\'")
        If pr IsNot Nothing Then
            DataTables("销售定单主表").DataCols("销售定单编号").RaiseDataColChanged(pr)
        End If
End If

同样报错。

我们暂且不管datacolchanged中填写代码报错的情况,只说在datarowdeleted事件中的报错情况,请问如何更改


--  作者:有点蓝
--  发布时间:2021/7/20 17:36:00
--  
下面是datacolchanged事件代码?确定是datacolchanged?这种代码放在datacolchanged?
If e.DataRow.delete Then
Dim pr As DataRow
        pr = DataTables("销售定单主表").Find("销售定单编号 = \'" & e.DataRow("销售定单编号") & "\'")
        If pr IsNot Nothing Then
            DataTables("销售定单主表").DataCols("销售定单编号").RaiseDataColChanged(pr)
        End If
End If

完全没看懂您的逻辑,请上传实例说明,并详细描述要做什么功能

--  作者:lal021962
--  发布时间:2021/7/20 18:50:00
--  
“销售定单主表”关联着销售定单明细表。
我希望销售定单明细表删除一行后,关联母行的“销售定单编号“列重置
--  作者:lal021962
--  发布时间:2021/7/20 20:30:00
--  
实例如下:


[此贴子已经被作者于2021/7/29 17:36:59编辑过]