以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助][原创]跨表录入数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=114820)

--  作者:huangjiacai
--  发布时间:2018/2/23 11:59:00
--  [求助][原创]跨表录入数据

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

图片点击可在新窗口打开查看此主题相关图片如下:代码.png
图片点击可在新窗口打开查看
设想:在“入库表”中添加信息,设置代码,自动识别“入库表中”“设备编号”,与“台账”中“设备编码”列比较,如果设备已存在。则修改台账表“”库存数量,否则,在“台账表”中新增一行,将新增设备信息录入
图片点击可在新窗口打开查看此主题相关图片如下:仓库台账.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/2/23 12:02:52编辑过]

--  作者:有点甜
--  发布时间:2018/2/23 12:22:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/2490.htm

 


--  作者:huangjiacai
--  发布时间:2018/2/24 14:31:00
--  
老师,我参照例子对代码做了修改,每次在入库表新增一行的时候,台账当中与之相对应的设备信息没有变化,而是新增一行,且入库总数默认是0,这是什么原因呢?
--  作者:有点蓝
--  发布时间:2018/2/24 14:53:00
--  
贴出事件完整代码看看
--  作者:huangjiacai
--  发布时间:2018/2/24 16:08:00
--  
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("品牌")
        Else
            dr("设备名称") = e.DataRow("设备名称")
            Dim n As Integer = dr("库存数量")
            dr("库存数量") = e.DataRow("数量")+n

        End If
  End Select

--  作者:有点蓝
--  发布时间:2018/2/24 17:14:00
--  
Select Case e.DataCol.name
    Case "设备编号","数量"
        Dim dr As DataRow = DataTables("仓库台账").Find("设备编号 = \'" & e.DataRow("设备编号") & "\'")
        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("品牌")
        Else
            dr("设备名称") = e.DataRow("设备名称")
            Dim n As Integer = dr("库存数量")
            dr("库存数量") = e.DataRow("数量")+n
            
        End If
End Select

--  作者:huangjiacai
--  发布时间:2018/2/24 17:20:00
--  
报错
图片点击可在新窗口打开查看此主题相关图片如下:报错.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2018/2/24 17:34:00
--  
这个代码不会有这个问题,上传实例看看
--  作者:huangjiacai
--  发布时间:2018/2/24 18:01:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:入库明细表.png
图片点击可在新窗口打开查看
是上传这两个表就够了么?用不用看表结构表属性?
图片点击可在新窗口打开查看此主题相关图片如下:仓库台账.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/2/25 9:47:00
--  
删除敏感数据,直接把你的项目发上来测试。