Foxtable(狐表)用户栏目专家坐堂 → 控制生产累计数不允许大于计划生产数


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

主题:控制生产累计数不允许大于计划生产数

帅哥,在线噢!
有点蓝
  41楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106079 积分:539494 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/1 8:44:00 [只看该作者]

对于半成品和生产计划表来说,根本没有生产工序这玩意,那么上面表格同一个订单号和产品,不同的生产工序的不同的值是怎么来的?

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


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

 参考代码

 

DataTables("生产进度汇总表").DataRows.Clear
Dim Arys As List(Of String())
Arys = DataTables("冲压车间工资表").GetValues("产品名称|生产工序|订单号", "产品名称 is not null")
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").AddNew()
    dr("产品名称") = Ary(0)
    dr("生产工序") = Ary(1)
    dr("订单号") = Ary(2)
    dr("实际生产数") = DataTables("冲压车间工资表").Compute("sum(数量)","[产品名称] = '" & Ary(0) & "' and 生产工序='" & Ary(1) & "' and 订单号='" & Ary(2) & "'")
Next
Arys = DataTables("半成品完工进仓表").GetValues("产品名称|订单号","产品名称 is not null")
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").find("[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
    If dr Is Nothing Then
        dr = DataTables ("生产进度汇总表").AddNew()
    End If
    dr("产品名称") = Ary(0)
    dr("订单号") = Ary(1)
    dr("半成品进仓数") += DataTables("半成品完工进仓表").Compute("sum(数量)","[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
Next
Arys = DataTables("生产计划表").GetValues("产品名称|订单号","产品名称 is not null")
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").find("[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
    If dr Is Nothing Then
        dr = DataTables ("生产进度汇总表").AddNew()
    End If
    dr("产品名称") = Ary(0)
    dr("订单号") = Ary(1)
    dr("生产计划数") += DataTables("生产计划表").Compute("sum(数量)","[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
Next


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  43楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/12/1 12:00:00 [只看该作者]

  能否加个条件,只显示符合选择时段的产品名称、生产工序、订单号的数据,实际生产数、半成品进仓数、计划生产数的统计方式不变,都是计算累计数。我知道有筛选时间,代码要编在窗口里了,现在把做在项目事件里的代码注识,在窗口按钮里如何加条件代码把数据填充到表体?

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  44楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/12/1 12:04:00 [只看该作者]

删除内容。
[此贴子已经被作者于2016/12/1 23:22:58编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  45楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106079 积分:539494 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/1 12:13:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/scr/1058.htm,比如:

Dim Filter As String
With e.Form.Controls("StartDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("EndDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 <= #" & .Value & "#"
    End If
End With
If Filter > "" Then Filter = " and "Filter
Arys = DataTables("冲压车间工资表").GetValues("产品名称|生产工序|订单号", "产品名称 is not null" & Filter )

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  46楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/12/1 21:10:00 [只看该作者]

Dim Filter As String
With e.Form.Controls("StartDate")
    If .Value   IsNot   Nothing   Then
        If Filter >""   Then
            Filter = Filter &   " And "
        End   If
        Filter = Filter &   "日期 >= #" & .Value &   "#"
    End   If
End   With
With e.Form.Controls("EndDate")
    If .Value   IsNot   Nothing   Then
        If Filter >""   Then
            Filter = Filter &   " And "
        End   If
        Filter = Filter &   "日期 <= #" & .Value &   "#"
    End   If
End   With
DataTables("生产进度汇总表").DataRows.Clear
Dim Arys As List(Of String())
Arys = DataTables("冲压车间工资表").GetValues("产品名称|生产工序|订单号", "产品名称 is not null" & Filter )
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").AddNew()
    dr("产品名称") = Ary(0)
    dr("生产工序") = Ary(1)
    dr("订单号") = Ary(2)
    dr("实际生产数") = DataTables("冲压车间工资表").Compute("sum(数量)","[产品名称] = '" & Ary(0) & "' and 生产工序='" & Ary(1) & "' and 订单号='" & Ary(2) & "'")
Next
Arys = DataTables("半成品完工进仓表").GetValues("产品名称|订单号","产品名称 is not null")
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").find("[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
    If dr Is Nothing Then
        dr = DataTables ("生产进度汇总表").AddNew()
    End If
    dr("产品名称") = Ary(0)
    dr("订单号") = Ary(1)
    dr("半成品进仓数") += DataTables("半成品完工进仓表").Compute("sum(数量)","[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
Next
Arys = DataTables("生产计划表").GetValues("产品名称|订单号","产品名称 is not null")
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").find("[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
    If dr Is Nothing Then
        dr = DataTables ("生产进度汇总表").AddNew()
    End If
    dr("产品名称") = Ary(0)
    dr("订单号") = Ary(1)
    dr("生产计划数") += DataTables("生产计划表").Compute("sum(数量)","[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
Next

 

我把这代码放在生产进度汇总表的窗口按钮里,预览提示,


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

 回到顶部
帅哥,在线噢!
有点蓝
  47楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106079 积分:539494 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/1 21:17:00 [只看该作者]

Dim Filter As String
With e.Form.Controls("StartDate")
    If .Value   IsNot   Nothing   Then
        If Filter >""   Then
            Filter = Filter &   " And "
        End   If
        Filter = Filter &   "日期 >= #" & .Value &   "#"
    End   If
End   With
With e.Form.Controls("EndDate")
    If .Value   IsNot   Nothing   Then
        If Filter >""   Then
            Filter = Filter &   " And "
        End   If
        Filter = Filter &   "日期 <= #" & .Value &   "#"
    End   If
End   With
If Filter > "" Then Filter = " and " & Filter
DataTables("生产进度汇总表").DataRows.Clear
Dim Arys As List(Of String())
Arys = DataTables("冲压车间工资表").GetValues("产品名称|生产工序|订单号", "产品名称 is not null" & Filter )
.....

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  48楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/12/1 21:21:00 [只看该作者]

生产计划表、半成品完工进仓表中的时间是不用对应冲压车间工资表中的时间的,冲压车间工资表中的是实际生产时间,会比生产计划表中的时间前,生产计划表中的时间是交货时间,半成品完工进仓时间亦会出现上月生产的产品,由于未完全完成所有工序,留待本月完工进仓,对了生产计划表和完工进仓表是不会有工序出现的,只要产品名称、订单号对应冲压车间工资表中指定时段的产品名称、订单号就进行统计,默认它们所走的工序数量相等。因为要走完所有工序才完成一个产品,所以半成品进仓的数、生产计划数它们安产品名称、订单号对应的工序数量一定相等。

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  49楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/12/1 21:42:00 [只看该作者]

这是用excel统计的显示结果。
图片点击可在新窗口打开查看此主题相关图片如下:0001.png
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  50楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/12/1 21:46:00 [只看该作者]

现在FoxTable软件中筛选后的显示效果是:
图片点击可在新窗口打开查看此主题相关图片如下:0000.png
图片点击可在新窗口打开查看
半成品进仓数、生产计划数两列不符合显示要求。
[此贴子已经被作者于2016/12/1 21:50:40编辑过]

 回到顶部
总数 137 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..14