Foxtable(狐表)用户栏目专家坐堂 → 找工程,倒算数量


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

主题:找工程,倒算数量

美女呀,离线,留言给我吧!
zhangning
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
找工程,倒算数量  发帖心情 Post By:2016/12/16 13:14:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:加工1.png
图片点击可在新窗口打开查看
如图,已知想加工出的最终良品数,如第一行 “最终良品数”是26个,需要找到最后一道工序,(最后一道工序的工程名列有内容,其后工序的工程名列就是空值了),“最终良品数” ÷ 最后一道工序的“良品率” = 最后一道工序的“投入数量”,
之后往前一道工序类推,    最终得出第1序的“投入数量”,
请问老师,要达到这样的效果怎么弄呢?谢谢!



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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/12/16 15:01:00 [只看该作者]

if e.datacol.name = "最终良品数" orelse e.datacol.name.EndsWith("_投入数量") orelse e.datacol.name.EndsWith("_工程名称")
     dim lg as string = "第1序"
     For i as integer = 2 to 10 ‘假定有10个工序
          if e.datarow.IsnUll("第" & i & "序_工程名称") then
              exit for
          else
               lg = "第" & i & "序"
          end if
     next
      e.datarow(lg & "_投入数量") = e.datarow("最终良品数") * e.datarow(lg & "_良品率")
end if

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/12/16 15:59:00 [只看该作者]

狐狸爸爸,您好!我将代码复制到 表 的Datacolchanged事件里,重置列后,
直接就退出狐表了,不知道什么原因?

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/12/16 16:11:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产管理2016新实验.rar


 回到顶部
美女呀,离线,留言给我吧!
zhangning
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/12/16 16:12:00 [只看该作者]

开发   qdkf

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/12/16 16:26:00 [只看该作者]

if e.datacol.name = "最终良品数"  orelse e.datacol.name.EndsWith("_工程名称")
     dim lg as string = "第1序"
     For i as integer = 2 to 10 ‘假定有10个工序
          if e.datarow.IsnUll("第" & i & "序_工程名称") then
              exit for
          else
               lg = "第" & i & "序"
          end if
     next
      e.datarow(lg & "_投入数量") = e.datarow("最终良品数") * e.datarow(lg & "_良品率")
end if
[此贴子已经被作者于2016/12/16 16:26:04编辑过]

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/12/19 9:30:00 [只看该作者]

老师,您好!
我运行代码后,出现以下异常:
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.7.29.1
错误所在事件:表,加工排产,DataColChanged
详细错误信息:
调用的目标发生了异常。
值对于 Int32 太大或太小。不能在 第1序_投入数量 列中存储 <非数字>。所需类型是 Int32。
值对于 Int32 太大或太小。


关闭窗口后,有些也只是显示最后一道工序的数量,如何倒推,直到第一序,全部工序的投入数量都显示呢?






 回到顶部
美女呀,离线,留言给我吧!
zhangning
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/12/19 9:33:00 [只看该作者]

算数量时,希望的是只要有小数,都进成整数,
比如:  5.2  显示为6
5.8也显示为6

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


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

If e.DataCol.name = "最终良品数"  OrElse e.DataCol.name.EndsWith("_工程名")
    Dim count As Integer = e.DataRow("最终良品数")
    For i As Integer = 12 To 1 Step -1 '假定有10个工序
        If e.DataRow.Isnull("第" & i & "序_工程名") = False Then
            Dim lg As String = "第" & i & "序"
           
            count = Math.Ceiling(count / e.DataRow(lg & "_良品率"))
            e.DataRow(lg & "_投入数量") = count
        End If
    Next
   
End If

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/12/19 11:07:00 [只看该作者]

谢谢老师,
运行有点异常
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.7.29.1
错误所在事件:表,加工排产,DataColChanged
详细错误信息:
调用的目标发生了异常。
算术运算导致溢出。

关闭窗口后,到第一序的数量都出来了,而且都对,很快,
请老师帮看看,问题出在哪里了呢?


 回到顶部
总数 43 1 2 3 4 5 下一页