Foxtable(狐表)用户栏目专家坐堂 → 如果根据子表的未交货状况,设置父表状态


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

主题:如果根据子表的未交货状况,设置父表状态

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


加好友 发短信
等级:一尾狐 帖子:406 积分:4944 威望:0 精华:0 注册:2017/2/7 7:41:00
如果根据子表的未交货状况,设置父表状态  发帖心情 Post By:2017/4/13 17:30:00 [只看该作者]

订单主表与订单明细表已建立订单号关联。
现在需要根据子订单已交货完毕的状态(未交数量为0),设置对应的订单主表“已结清”为True
例如:
订单号111有二个子订单,都已交货,应设置“已结清”为True
订单号400800有三个子订单,其中一个货品有5件未交货,设置“已结清”为False

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:订单测试项目-统计子表.table



[此贴子已经被作者于2017/4/13 19:12:10编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/13 17:50:00 [只看该作者]

改成表达式列,然后写公式 iif(Sum(Child(订单明细).未交数量)=0, true, false)

 

写代码也可以,在主表DataColChanged事件,写代码

 

If e.DataCol.name = "客户订单号" Then
    Dim sum As Double = DataTables("订单明细表").Compute("sum(未交数量)", "客户订单号 = '" & e.DataRow("客户订单号") & "'")
    If sum = 0 Then
        e.DataRow("已结清") = True
    Else
        e.DataRow("已结清") = False
    End If
End If


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


加好友 发短信
等级:一尾狐 帖子:406 积分:4944 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2017/4/13 19:06:00 [只看该作者]

能不能有另外算法。
实际生产中,某个货品有可能多送货,这时未交数量为负数
同一个订单中,未交数量有可能与另外个 负数正好一样。
如订单号400800有三个子订单,前一个未交数量为5件,最一项又多送了5件。
这种情况还不能设置为True


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


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/13 19:18:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:订单测试项目-统计子表.table


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


加好友 发短信
等级:一尾狐 帖子:406 积分:4944 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2017/4/13 19:42:00 [只看该作者]

谢谢版主

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


加好友 发短信
等级:幼狐 帖子:58 积分:831 威望:0 精华:0 注册:2012/1/29 17:10:00
  发帖心情 Post By:2022/3/6 23:50:00 [只看该作者]

出库明细表 DataColChanged :
If e.DataCol.Name = "未交数量" Then
    DataTables("订单主表").datacols("客户订单号").RaiseDataColChanged("客户订单号 = '" & e.DataRow("客户订单号") & "'")
End If

触发订单主表和明细表变动后,怎样自动保存订单主表和明细表?

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


加好友 发短信
等级:超级版主 帖子:111455 积分:567357 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/7 8:24:00 [只看该作者]

If e.DataCol.Name = "未交数量" Then
    DataTables("订单主表").datacols("客户订单号").RaiseDataColChanged("客户订单号 = '" & e.DataRow("客户订单号") & "'")
 DataTables("订单主表").save
 DataTables("订单明细表").save
End If

 回到顶部