以文本方式查看主题

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

--  作者:13775189031
--  发布时间:2019/10/30 17:02:00
--  关联表
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:质量管理信息系统.foxdb

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:质量管理信息系统.rar

开发者147258,其他888
表“核电不符合项报告单”中每填一行会自动根据“编号”生成到表“公司不符合项管理表”,生成后出现以下问题:
1.表“核电不符合项报告单”中“编号”删除不了,剪切也不行!
2.更改“编号”后,表“公司不符合项管理表”里的原信息不会自动删除,而是重新生成一行!
要怎么改,两张表中的信息要求一一对应的,原编号删除,则表“公司不符合项管理表”里的信息也自动删除

--  作者:有点蓝
--  发布时间:2019/10/30 17:25:00
--  
1、设置关联的时候勾选“同步更新关联列”导致的,只要子表有对应的记录,关联列的数据都无法删除的
2、表“核电不符合项报告单”事件自己写的代码重新生成一行
--  作者:13775189031
--  发布时间:2019/10/31 13:09:00
--  
Select Case e.DataCol.name
    Case "编号"
        If e.DataRow.IsNull("编号") = True Then
            DataTables("公司不符合项管理表").DeleteFor("编号=\'" & e.DataRow("编号") & "\'")
        Else
            Dim ndr1 As DataRow = DataTables("公司不符合项管理表").Find("编号 = \'" & e.DataRow("编号") & "\'")
            If ndr1 Is Nothing Then
                Dim ndr As Row = Tables("公司不符合项管理表").AddNew
                ndr("编号") = e.DataRow("编号")
                ndr("产品属性") = e.DataRow("产品属性")
                ndr("不符合类别_分类") = "核电不符合项"
                ndr("不符合类别_级别") = e.DataRow("不符合类别")
                ndr("部门") = e.DataRow("部门")
                ndr("开启日期") = e.DataRow("开启日期")
                ndr("统计日期") = e.DataRow("统计日期")
                ndr("不符合项描述") = e.DataRow("缺陷部件_不符合项描述")
                ndr("原因分析") = e.DataRow("拟定方案_原因分析_内容")
                ndr("处理方案") = e.DataRow("拟定方案_纠正措施_内容")
                ndr("处理结果") = e.DataRow("关闭决定_SPEC决定")
                ndr("关闭日期") = e.DataRow("关闭决定_日期")
                ndr("质量损失金额") = e.DataRow("合计损失金额")
                ndr("质量考核金额") = e.DataRow("质量考核金额")
                ndr("责任单位") = e.DataRow("责任单位")
                ndr("过程分类") = e.DataRow("过程分类")
                ndr("工序分类") = e.DataRow("缺陷部件_制作阶段")
                ndr("项目或检查名称_项目名称") = e.DataRow("项目名称")
                ndr("项目或检查名称_机组") = e.DataRow("机组号")
                ndr("项目或检查名称_设备名称") = e.DataRow("设备名称")
                ndr.Move(0)
            End If
        End If
End Select

代码改了一下,删掉表“核电不符合项报告单”中的编号,但“公司不符合项管理表”中的此行还是存在,不能同步删掉,
在表“核电不符合项报告单”DaTaRowDeleting事件中也设置了代码DataTables("公司不符合项管理表").deletefor("编号=\'" & e.DataRow("编号") & "\'")
为何还不能同步删除?

--  作者:有点蓝
--  发布时间:2019/10/31 13:48:00
--  
我测试没有问题
--  作者:13775189031
--  发布时间:2019/10/31 15:15:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:质量管理信息系统.foxdb

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:质量管理信息系统.rar

麻烦老师再帮我看看呢!
删掉表“核电不符合项报告单”中的编号,但“公司不符合项管理表”中的此行还是存在,不能同步删掉

--  作者:有点蓝
--  发布时间:2019/10/31 15:26:00
--  

Select Case e.DataCol.name
    Case "编号"
        If e.DataRow.IsNull("编号") = True Then
            DataTables("公司不符合项管理表").DeleteFor("编号=\'" & e.OldValue & "\'")
        Else
……

--  作者:13775189031
--  发布时间:2019/10/31 16:23:00
--  
编号整个删除掉,“公司不符合项管理表”中的此行可以同步删掉,但如果只是把编号修改一下,“公司不符合项管理表”中的原编号行无法删除,是什么问题?
--  作者:有点蓝
--  发布时间:2019/10/31 16:34:00
--  
Select Case e.DataCol.name
    Case "编号"
        If e.DataRow.IsNull("编号") = True Then
            DataTables("公司不符合项管理表").DeleteFor("编号=\'" & e.OldValue & "\'")
        Else
            Dim ndr1 As DataRow = DataTables("公司不符合项管理表").Find("编号 = \'" & e.OldValue  & "\'")
            If ndr1 Is Nothing Then
                Dim ndr As Row = Tables("公司不符合项管理表").AddNew
                ndr("编号") = e.DataRow("编号")
                ndr("产品属性") = e.DataRow("产品属性")
                ndr("不符合类别_分类") = "核电不符合项"
                ndr("不符合类别_级别") = e.DataRow("不符合项类别")
                ndr("部门") = e.DataRow("部门")
                ndr("开启日期") = e.DataRow("开启日期")
                ndr("统计日期") = e.DataRow("统计日期")
                ndr("不符合项描述") = e.DataRow("缺陷部件_不符合项描述")
                ndr("原因分析") = e.DataRow("拟定方案_原因分析_内容")
                ndr("处理方案") = e.DataRow("拟定方案_纠正措施_内容")
                ndr("处理结果") = e.DataRow("关闭决定_SPEC决定")
                ndr("关闭日期") = e.DataRow("关闭决定_日期")
                ndr("质量损失金额") = e.DataRow("合计损失金额")
                ndr("质量考核金额") = e.DataRow("质量考核金额")
                ndr("责任单位") = e.DataRow("责任单位")
                ndr("过程分类") = e.DataRow("过程分类")
                ndr("工序分类") = e.DataRow("缺陷部件_制作阶段")
                ndr("项目或检查名称_项目名称") = e.DataRow("项目名称")
                ndr("项目或检查名称_机组") = e.DataRow("机组号")
                ndr("项目或检查名称_设备名称") = e.DataRow("设备名称")
                ndr.Move(0)
            Else
                ndr1("编号") = e.NewValue
            End If
        End If
End Select

--  作者:13775189031
--  发布时间:2019/10/31 16:47:00
--  
OK了,谢谢!