Foxtable(狐表)用户栏目专家坐堂 → 【求助】跨表引用问题


  共有3451人关注过本帖树形打印复制链接

主题:【求助】跨表引用问题

帅哥哟,离线,有人找我吗?
wjy0611
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:457 威望:0 精华:0 注册:2017/6/21 22:24:00
【求助】跨表引用问题  发帖心情 Post By:2017/9/7 16:43:00 [只看该作者]

有两个表 OrderInfo(订单表) 和 CutorderTable(拆单表)
两个表里都有OrderCode(订单号)和AllQuantity(总数量)和PrdName(产品名称)列
当产品名称列发生变更后需要把订单表里的总数量同步到拆单表
当订单表里的订单号和拆单表里的订单号相同,产品名称相同,总数量同步没问题
当订单表里的订单号和拆单表里的订单号相同,产品名称不同,总数量同步没问题
当订单表里的订单号和拆单表里的订单号不同,产品名称相同,总数量会变成之前的总数量,没有更新成新的订单里的产品总数量。



 回到顶部
帅哥哟,离线,有人找我吗?
wjy0611
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:457 威望:0 精华:0 注册:2017/6/21 22:24:00
  发帖心情 Post By:2017/9/7 16:48:00 [只看该作者]

拆单表里的DataColChanged事件代码
If e.DataCol.Name = "prdname" Then 
    If e.NewValue Is Nothing Then 
        e.DataRow("AllQuantity") = Nothing 
        e.DataRow("DistributiveQuantity") = Nothing 
        e.DataRow("OperatorID") = Nothing 
        e.DataRow("DealerName") = Nothing 
        e.DataRow("DealerCode") = Nothing 
        e.DataRow("OrderCode") = Nothing 
        e.DataRow("PrdCode") = Nothing 
        e.DataRow("DistributiveStatus") = Nothing 
        e.DataRow("ScanQuantity") = Nothing 
        e.DataRow("UplodaTime") = Nothing 
        e.DataRow("Standard") = Nothing 
        e.DataRow("DepotArea") = Nothing
        e.DataRow("Surplus") = Nothing  
    Else
        Dim dr As DataRow
       '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("OrderInfo").Find("[prdname] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
        e.DataRow("AllQuantity") = dr("AllQuantity")
        e.DataRow("OperatorID") = dr("OperatorID")
        e.DataRow("DealerName") = dr("DealerName") 
        e.DataRow("DealerCode") = dr("DealerCode")
        e.DataRow("OrderCode") = dr("OrderCode")  
        e.DataRow("PrdCode") = dr("PrdCode")
        e.DataRow("DistributiveStatus") = dr("DistributiveStatus")
        e.DataRow("Standard") = dr("Standard")
        e.DataRow("DepotArea") = dr("DepotArea") 
        End If
    End If
End If


订单表里的DataColChanged事件
If e.DataCol.Name = "AllQuantity"
    Dim Filter As String = "[PrdName] = '" & e.DataRow("PrdName") & "'"
    Dim drs As List(Of DataRow) = DataTables("CutorderTable").Select(Filter)
    For Each dr As DataRow In drs
        dr("AllQuantity") = e.DataRow("AllQuantity")
    Next
End If


If e.DataCol.Name = "Prdname" Then 
 If e.NewValue Is Nothing Then 
        e.DataRow("Surplus") = Nothing 
    Else
           Dim dr As DataRow
        '在拆单表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("CutorderTable").Find("[prdname] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
        e.DataRow("Surplus") = dr("Surplus")
        End If
End If
    End If




[此贴子已经被作者于2017/9/7 16:49:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wjy0611
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:457 威望:0 精华:0 注册:2017/6/21 22:24:00
  发帖心情 Post By:2017/9/7 17:56:00 [只看该作者]

有大佬帮帮忙吗

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/7 20:01:00 [只看该作者]

查找的时候根据两列查找

 

If e.DataCol.Name = "AllQuantity"
    Dim Filter As String = "[PrdName] = '" & e.DataRow("PrdName") & "' and OrderCode = '" & e.DataRow("OrderCode") & "'"
    Dim drs As List(Of DataRow) = DataTables("CutorderTable").Select(Filter)
    For Each dr As DataRow In drs
        dr("AllQuantity") = e.DataRow("AllQuantity")
    Next
End If

 回到顶部
帅哥哟,离线,有人找我吗?
wjy0611
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:457 威望:0 精华:0 注册:2017/6/21 22:24:00
  发帖心情 Post By:2017/9/8 11:02:00 [只看该作者]

以下是引用有点甜在2017/9/7 20:01:00的发言:

查找的时候根据两列查找

 

If e.DataCol.Name = "AllQuantity"
    Dim Filter As String = "[PrdName] = '" & e.DataRow("PrdName") & "' and OrderCode = '" & e.DataRow("OrderCode") & "'"
    Dim drs As List(Of DataRow) = DataTables("CutorderTable").Select(Filter)
    For Each dr As DataRow In drs
        dr("AllQuantity") = e.DataRow("AllQuantity")
    Next
End If


谢谢大佬给的思路,但是出现了个问题
我在这一行加了这个之后
    dr = DataTables("OrderInfo").Find("[prdname] = '" & e.NewValue & "' And [OrderCode] = '" & e.NewValue & ")

在拆单表新添加一行输入订单号和产品名后没有反应
确定拆单表里输入的是订单表里已有的订单号和产品名

[此贴子已经被作者于2017/9/8 11:02:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/8 11:13:00 [只看该作者]

If e.DataCol.Name = "prdname" OrElse e.DataCol.name =  "OrderCode " Then
    Dim Filter As String = "[PrdName] = '" & e.DataRow("PrdName") & "' and OrderCode = '" & e.DataRow("OrderCode") & "'"
    Dim dr = DataTables("OrderInfo").Find(filter)
   
    If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
        e.DataRow("AllQuantity") = dr("AllQuantity")
        e.DataRow("OperatorID") = dr("OperatorID")
        e.DataRow("DealerName") = dr("DealerName")
        e.DataRow("DealerCode") = dr("DealerCode")
        e.DataRow("OrderCode") = dr("OrderCode")
        e.DataRow("PrdCode") = dr("PrdCode")
        e.DataRow("DistributiveStatus") = dr("DistributiveStatus")
        e.DataRow("Standard") = dr("Standard")
        e.DataRow("DepotArea") = dr("DepotArea")
    End If
End If

 


 回到顶部
帅哥哟,离线,有人找我吗?
wjy0611
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:457 威望:0 精华:0 注册:2017/6/21 22:24:00
  发帖心情 Post By:2017/9/8 11:37:00 [只看该作者]

感谢,问题解决了
还有一个问题请问大佬
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水账.txt


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

我想让每一个订单号与产品名称 都相同的数据行里的剩余数量同步更新怎么做?


 回到顶部
帅哥哟,离线,有人找我吗?
wjy0611
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:457 威望:0 精华:0 注册:2017/6/21 22:24:00
  发帖心情 Post By:2017/9/8 11:49:00 [只看该作者]

以下是引用有点甜在2017/9/8 11:13:00的发言:

If e.DataCol.Name = "prdname" OrElse e.DataCol.name =  "OrderCode " Then
    Dim Filter As String = "[PrdName] = '" & e.DataRow("PrdName") & "' and OrderCode = '" & e.DataRow("OrderCode") & "'"
    Dim dr = DataTables("OrderInfo").Find(filter)
   
    If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
        e.DataRow("AllQuantity") = dr("AllQuantity")
        e.DataRow("OperatorID") = dr("OperatorID")
        e.DataRow("DealerName") = dr("DealerName")
        e.DataRow("DealerCode") = dr("DealerCode")
        e.DataRow("OrderCode") = dr("OrderCode")
        e.DataRow("PrdCode") = dr("PrdCode")
        e.DataRow("DistributiveStatus") = dr("DistributiveStatus")
        e.DataRow("Standard") = dr("Standard")
        e.DataRow("DepotArea") = dr("DepotArea")
    End If
End If

 


感谢,问题解决了,请问大佬另一个问题,拆单表里相同订单号和产品名称的剩余数量怎么和新添加的一行相同

代码和截图我贴在了楼上

[此贴子已经被作者于2017/9/8 11:48:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/8 13:00:00 [只看该作者]

你代码有什么问题?上传实例具体说明。

 回到顶部
帅哥哟,离线,有人找我吗?
wjy0611
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:57 积分:457 威望:0 精华:0 注册:2017/6/21 22:24:00
  发帖心情 Post By:2017/9/8 14:21:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test_201709081412.zip



我想让拆单表里订单号与产品名称相同的每一行 分配数量后,剩余数量那里的值都相同。

添加分配窗口里我选择产品名称的时候会报错,不知道怎么改。

 回到顶部
总数 13 1 2 下一页