Foxtable(狐表)用户栏目专家坐堂 → 按条件进行物料需求运算


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

主题:按条件进行物料需求运算

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/27 15:05:00 [显示全部帖子]


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/27 15:15:00 [显示全部帖子]

提问能否描述清楚一些,  销售记录都找不到 物料需求列  另外要怎么计算,也要描述清楚.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/27 15:27:00 [显示全部帖子]

尊敬的用户您好,请问您能否说明一下你要怎么计算呢?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/27 15:54:00 [显示全部帖子]

Dim dic As new Dictionary(of String,Integer)
Dim xs As String
For Each dr1 As DataRow In DataTables("销售记录").select("销售订单号='" & e.form.controls("ComboBox1").text & "'")
    For Each dr2 As DataRow In DataTables("产品BOM").Select("[产品配置号] = '" & dr1("产品配置号") & "'")
        Dim nm As String = dr2("零件代码")
        Dim vl As Integer = dr1("销售数量") * dr2("单机数量")
        If dic.ContainsKey(nm) = False
            dic.Add(nm,vl)
        Else
            dic(nm) = dic(nm)+ vl
        End If
    Next
Next
For Each key As String In dic.keys
    Dim dr As DataRow
    dr = DataTables("物料需求").Find("零件代码 Is Null ")
    If dr Is Nothing Then
        dr = DataTables("物料需求").AddNew()
    End If
    dr("零件代码") = key
    dr("数量") = dic(key)
Next

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/28 8:53:00 [显示全部帖子]

不明白你的意思,哪里重复?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/28 9:30:00 [显示全部帖子]

那你要怎么统计? 只统计当前选中的?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/28 9:42:00 [显示全部帖子]

用Compute http://www.foxtable.com/help/topics/0393.htm

datatables("销售记录").Compute("sum(销售数量)","销售单号='" & e.forms(X).controls(X) & "'")  不要再用Select选择行然后遍历

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/28 10:03:00 [显示全部帖子]

这和VBA没什么关系,新手建议你先按部就班学习一下帮助哦.
也可以看一下教程视频
Foxtable官方视频教程之一:《使用指南》 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67186
 Foxtable官方视频教程之二:《开发指南》 
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67187


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/28 11:35:00 [显示全部帖子]

Dim dic As new Dictionary(of String,Integer)
DataTables("物料需求").DataRows.Clear()
For Each dr1 As DataRow In DataTables("销售记录").Select("销售订单号='" & e.form.controls("ComboBox1").text & "'")
    For Each dr2 As DataRow In DataTables("产品BOM").Select("[产品配置号] = '" & dr1("产品配置号") & "'")
        Dim nm As String = dr2("零件代码")
        Dim vl As Integer = dr1("销售数量") * dr2("单机数量")
        If dic.ContainsKey(nm) = False
            dic.Add(nm,vl)
        Else
            dic(nm) = dic(nm)+ vl
        End If
    Next
Next
For Each key As String In dic.keys
    Dim dr As DataRow
    dr = DataTables("物料需求").Find("零件代码 Is Null ")
    If dr Is Nothing Then
        dr = DataTables("物料需求").AddNew()
    End If
    dr("零件代码") = key
    dr("销售订单") = e.form.controls("ComboBox1").text 
    dr("数量") = dic(key)
Next


 回到顶部