以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  入库数据跨表更新  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=159080)

--  作者:青丘狐
--  发布时间:2020/12/13 12:15:00
--  入库数据跨表更新

写  入库明细表里 DataColChanged

 

Select Case e.DataCol.name
    Case "货物编号"
        Dim dr As DataRow = DataTables("库存明细表").Find("货物编号 = \'" & e.OldValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("库存明细表").AddNew()
            dr("货物编号") = e.DataRow("货物编号")
            dr("生产日期") = e.DataRow("生产日期")
            dr("仓库") = e.DataRow("仓库")
            dr("产地") = e.DataRow("产地")
            dr("货物名称") = e.DataRow("货物名称")
            dr("规格型号") = e.DataRow("规格型号")
            dr("材质") = e.DataRow("材质")
            dr("车号") = e.DataRow("车号")
            dr("货位") = e.DataRow("货位")
            dr("单位") = e.DataRow("单位")
            dr("数量") = e.DataRow("数量")
            dr("重量") = e.DataRow("重量")
            dr("单价") = e.DataRow("单价")
        Else
            dr("货物编号") = e.DataRow("货物编号")
        End If
    Case  "生产日期","仓库","产地","货物名称","规格型号","材质","车号","货位","单位","数量","重量","单价"
        Dim dr As DataRow = DataTables("库存明细表").Find("货物编号 = \'" & e.DataRow("货物编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
    End  Select

 

入库明细表  录入时只有"生产日期","产地","货物名称","规格型号","货物编号" 这几个字段数据 库存明细表 可以跨表更新,继续录入其他的字段变成没有数据了

"货物名称","规格型号","货物编号" 是三个一起快捷录入的 库存明细表可以看到,继续输入其他数据后,再查库存明细表之前输入的"货物名称","规格型号","货物编号"

不见了

有一个产品表有"产地","货物名称","规格型号","货物编号"等字段,  入库时 库存明细表 里库存更新和产品表有关吗?

 是不是产品表里没有的字段就不能输入更新,但入库时"车号","货位","单位","数量","重量","单价是要变动的,这些字段要可以同时删除和增加,

 

增加删除 入库明细表 数据 ,在 库存明细表 中相关的数据同步增加删除请问代码怎么改?

 

 

 

 

[此贴子已经被作者于2020/12/13 14:43:23编辑过]

--  作者:有点蓝
--  发布时间:2020/12/13 20:33:00
--  
代码没有问题,应该是其它事件影响了,比如"库存明细表"的表事件
--  作者:青丘狐
--  发布时间:2020/12/14 13:15:00
--  

是删除代码写错事件了,货物编号不同相同可以正常跨表更新  如果货物编号相同"材质","车号","货位","单位","数量","重量","单价"录入没数值显示,

所以数据中只有车号不同的数据就不能录入了 请问老师这一段代码要怎么改?

[此贴子已经被作者于2020/12/14 13:16:05编辑过]

--  作者:有点蓝
--  发布时间:2020/12/14 13:43:00
--  
Select Case e.DataCol.name
    Case "货物编号"
        Dim dr As DataRow = DataTables("库存明细表").Find("货物编号 = \'" & e.OldValue & "\'")
        If dr IsNot Nothing Then
            dr("货物编号") = e.DataRow("货物编号")
        Else
            dr = DataTables("库存明细表").Find("货物编号 = \'" & e.newValue & "\'")
            If dr Is Nothing Then
                dr = DataTables("库存明细表").AddNew()
            End If
        End If
        dr("货物编号") = e.DataRow("货物编号")
        dr("生产日期") = e.DataRow("生产日期")
        dr("仓库") = e.DataRow("仓库")
        dr("产地") = e.DataRow("产地")
        dr("货物名称") = e.DataRow("货物名称")
        dr("规格型号") = e.DataRow("规格型号")
        dr("材质") = e.DataRow("材质")
        dr("车号") = e.DataRow("车号")
        dr("货位") = e.DataRow("货位")
        dr("单位") = e.DataRow("单位")
        dr("数量") = e.DataRow("数量")
        dr("重量") = e.DataRow("重量")
        dr("单价") = e.DataRow("单价")
    Case  "生产日期","仓库","产地","货物名称","规格型号","材质","车号","货位","单位","数量","重量","单价"
        Dim dr As DataRow = DataTables("库存明细表").Find("货物编号 = \'" & e.DataRow("货物编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
    End  Select

--  作者:青丘狐
--  发布时间:2020/12/14 14:16:00
--  
老师还是不能增加货物编号相同的数据
--  作者:有点蓝
--  发布时间:2020/12/14 14:31:00
--  
请上传实例说明
--  作者:青丘狐
--  发布时间:2020/12/14 15:35:00
--  
编号相同的入库不正确
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:入库.rar

[此贴子已经被作者于2020/12/14 15:35:24编辑过]

--  作者:有点蓝
--  发布时间:2020/12/14 15:46:00
--  
这种不是一对一的关系,库存要做统计吧?而不是直接赋值:http://www.foxtable.com/webhelp/topics/1472.htm