以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  跨表引用问题2  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=98751)

--  作者:longyanlin
--  发布时间:2017/4/6 12:28:00
--  跨表引用问题2

有一窗口表“订单表”中的按钮,把“订单表”里面的数据引用到生产订单中去,代码如下:

For Each dr As DataRow In DataTables("订单表").Select("审核=TRUE")
    Dim fdr As DataRow = DataTables("生产订单").Find("生产单号 = \'" & dr("生产单号") & "\' and 产品编号 = \'" & dr("产品编号")   & "\'")
    If fdr Is Nothing Then
        fdr = DataTables("生产订单").AddNew()
        fdr("生产单号") = dr("生产单号")
        fdr("产品编号") = dr("产品编号")
    End If
   fdr("产品名称") = dr("产品名称")
    fdr("规格型号") = dr("规格型号")
fdr("客户单号") = dr("客户单号")
fdr("交货日期") = dr("交货日期")
fdr("下单日期") = dr("下单日期")
Next

当数据引入到“生产订单”中后,原来“生产订单.生产明细”表里面的数据发生了异常,就是所有的生产单号都变成了“生产订单”表里面的第一行生产单号(生产单号不发生变化)

“生产订单”里面的

DataColChanged

代码为:

If e.DataCol.Name = "产品编号" Then
    DataTables("订单明细").DeleteFor("生产单号 = \'" & e.DataRow("生产单号").Replace("\'", "\'\'") & "\'")
    For Each dr As DataRow In DataTables("样品子件").Select("产品编号 = \'" & e.NewValue.Replace("\'", "\'\'") & "\'")
        Dim nr As Row = Tables("生产订单.订单明细").Addnew
        nr("物料编号") = dr("物料编号")
        nr("物料名称") = dr("物料名称")
        nr("规格型号") = dr("规格型号")
        nr("用料系数") = dr("用料系数")
        nr("单位") = dr("单位")
        nr("属性") = dr("属性")
        nr("材质") = dr("材质")
    Next
End If

求代码修改


--  作者:有点蓝
--  发布时间:2017/4/6 15:04:00
--  
DataColChanged
代码为:
If e.DataCol.Name = "产品编号" Then
    DataTables("订单明细").DeleteFor("生产单号 = \'" & e.DataRow("生产单号").Replace("\'", "\'\'") & "\'")
    For Each dr As DataRow In DataTables("样品子件").Select("产品编号 = \'" & e.NewValue.Replace("\'", "\'\'") & "\'")
        Dim nr As Row = Tables("订单明细").Addnew
        nr("生产单号") = e.DataRow("生产单号")
        nr("物料编号") = dr("物料编号")
        nr("物料名称") = dr("物料名称")
        nr("规格型号") = dr("规格型号")
        nr("用料系数") = dr("用料系数")
        nr("单位") = dr("单位")
        nr("属性") = dr("属性")
        nr("材质") = dr("材质")
    Next
End If

--  作者:有点色
--  发布时间:2017/4/6 15:08:00
--  

你可以引入的时候,不触发具体事件的代码

 

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

 


--  作者:longyanlin
--  发布时间:2017/4/6 15:28:00
--  

谢谢两位老师