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


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

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

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


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

以下是引用意悠心轻在2017/1/12 0:30:00的发言:
冲压车间工资表订单列窗口中的未生产数不会自动数。

 

未生产数等于计划数减去实际数,怎么会不计算?

 

如果实际数为空的情况,要改公式 isnull([生产计划数],0)-isnull([实际生产数],0)


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


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

在手提上行了,应该是家里的系统出问题了。


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


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

我在半成品完工进仓表做了一个同步更新、删除的双向关联表,目的方便看着生产数、计划数修改半成品完工进仓表的订单号,让它与冲压车间工资表中的同期生产订单号对应。但发现在半成品完工进仓表中删除一行YXN2116杯,生产计划表全部YXN2116杯数据被删,为什么会这样?哪出错了?

[此贴子已经被作者于2017/1/22 8:55:54编辑过]

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


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


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


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


  超计划生产的产品有产品名称、工序,没订单号,在生产进度汇总表中没统计这部分数据,我在生产进度汇总表窗口中加了统计订单号为空的条件,但编写不对,麻烦帮我看一下,谢谢。

[此贴子已经被作者于2017/3/11 21:39:56编辑过]

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


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/11 15:04:00 [只看该作者]

......

If Filter > "" Then Filter = " and " & Filter
DataTables("生产进度汇总表").StopRedraw
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 订单号 " & IIF(Ary(2) > ""," ='" & Ary(2) & "'" , " Is Null") )
Next
Dim dt As DataTable
Dim g As New GroupTableBuilder("统计表1", DataTables("半成品完工进仓表"))
g.Groups.AddDef("产品名称")
g.Groups.AddDef("订单号")
g.Totals.AddDef("数量")
dt = g.Build(False)

For Each dr As DataRow In dt.DataRows
    DataTables("生产进度汇总表").ReplaceFor("半成品进仓数",dr("数量"),"[产品名称] = '" & dr("产品名称") &  "' and 订单号 " & IIF(dr.IsNull("订单号")," Is Null"," ='" & dr("订单号")  & "'"))
Next
Dim g2 As New GroupTableBuilder("统计表2", DataTables("生产计划表"))
g2.Groups.AddDef("产品名称")
g2.Groups.AddDef("订单号")
g2.Totals.AddDef("数量")
dt = g2.Build(False)
For Each dr As DataRow In dt.DataRows
    DataTables("生产进度汇总表").ReplaceFor("生产计划数",dr("数量"),"[产品名称] = '" & dr("产品名称") &  "' And 订单号 " & IIF(dr.IsNull("订单号")," Is Null"," ='" & dr("订单号")  & "'"))
Next
DataTables("生产进度汇总表").ResumeRedraw


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


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

运行结果生产进度汇总表什么都不显示!

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


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/11 15:37:00 [只看该作者]

我测试没有问题,除非你筛选条件不正确

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


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

  我重启后显示正常了,我看你编写的代码也没问题的,可能没重新打开吧。

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


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

Dim tbl As Table = Tables("窗口5_Table1")
If tbl.Current.IsNull("本次录入数") = False Then
   
    Dim tb2 As Table = Tables("冲压车间工资表")
    Dim sum1 As Double = DataTables("生产计划表").Compute("Sum(数量)","订单号='" & tbl.current("订单号") & "' And 产品名称= '" & tbl.current("产品名称") & "'")
    Dim sum As Double = tb2.DataTable.Compute("Sum(数量)","订单号='" &  tbl.current("订单号") & "' And 产品名称='" & tbl.current("产品名称") & "' and 生产工序='" & tbl.current("生产工序") & "' and [_Identify] <> " & tb2.current("_Identify"))
    If sum + tbl.current("本次录入数")> sum1 Then
        msgbox("数量超出")
        e.Form.DropDownBox.Value = Nothing
    Else
        e.Form.DropDownBox.Value = tbl.Current("订单号")
        Tables("冲压车间工资表").Current("订单号") = tbl.Current("订单号")
        Tables("冲压车间工资表").Current("数量")  = tbl.Current("本次录入数")
    End If   
End If

  红色标注的代码把内容改为空了,我要求数量超过时不修改原内容,即原有订单号、数量的维持不变,否则改了订单号,数量没改,累计变负数了。你们看2017年3月12日面包桶8902 一次拉伸的数,我把上面2行的订单号、数量复制到下面2行,结果报数量超出了不允许输入数量,但订单号修改了,结果累计变负。

  另外如何显示行号?

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:财务核对、整理冲压车间后的数据.zip

密码:111222333

[此贴子已经被作者于2017/3/28 15:44:19编辑过]

 回到顶部