Foxtable(狐表)用户栏目专家坐堂 → 组合件排产


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

主题:组合件排产

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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:精益制造管理系统.rar

开发者:qdkf

老师,您好!
我想对组合件进行排产,组合件在我司主要是指类似焊接这样的工序,
例如:将A部品和B部品焊接,形成C部组(组合件)。
在“加工排产”窗口的“导入加工品”按钮中,
想要达到的效果是:

先判断一下所选的组装品的《加工用製品构成》是否含有部组,

如含有,则先引入部组所需要的部品名,假设有有2个,就是2行,

在这2行后面紧接着插入部组名,只占一行。

并按“优先级”升序排列,

现在的代码达不到以上要求,请老师帮帮忙,谢谢!



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


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

Dim filter1 As String
filter1 = "商品名 in ('" & e.form.controls("CheckedComboBox1").Text.replace(",", "','") & "')"
Dim drs1 As List(Of DataRow) = DataTables("加工用製品构成").Select(filter1, "[优先级]")
Systemready = False
Dim t As Table = e.form.controls("Table1").Table
t.ResumeRedraw
t.StopRedraw
For i1 As Integer = 0 To drs1.count - 1
    Dim dr1 = t.addnew()
    Dim pr1 = drs1(i1)
    dr1("制品名") = pr1("商品名")
    dr1("部组名") = pr1("部组名")
    dr1("优先级") = pr1("优先级")
    dr1("类别") = "计划"
    dr1("制单号") = "" & e.form.controls("CheckedComboBox2").Text & ""
    dr1 = t.addnew()
    dr1("制品名") = pr1("商品名")
    dr1("部组名") = pr1("部组名")
    dr1("优先级") = pr1("优先级")
    dr1("类别") = "实际"
    dr1("制单号") = "" & e.form.controls("CheckedComboBox2").Text & ""
Next
t.ResumeRedraw
Systemready = True

DataTables("加工排产").Save()


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


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

老师,我用的排序时:
Dim drs1 As List(Of DataRow) = DataTables("加工用製品构成").Select(filter1, "[优先级]")
出现的效果是:
4-1-1
4-1-11
4-1-12

4-2-1

等,我不想要这样的,我想要的效果是:
4-1-1
4-1-2
4-1-3

4-1-10
4-1-11
以此类推,请问老师,这样如何改编码呀?

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


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

 必须把你的优先级编号修改一下才行,改成这样的格式

 

04-01-01

04-01-11

04-01-12

 

04-02-01

04-02-10


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


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

谢谢老师,忘了说明,过滤条件中还要加入,“优先级”不能为空,
另外,还希望在有部组的部品成员之后加入部组名,
例如有A和B两个部品,它们组合成C部组,
在导入时,先将A和B导入,放入“部品ID”列,紧接者导入部组名C,放入“部组名”列,

没有部组的,就只导入部品就行。

麻烦老师,请帮帮忙,谢谢!

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


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

1、filter1 = "商品名 in ('" & e.form.controls("CheckedComboBox1").Text.replace(",", "','") & "') and 优先级 is not null"

 

2、没看懂你的意思,根据例子截图说明。


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


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

在“加工用製品构成”表中,如果“部组名”列不为空,则说明是一个组合件,是由其后的“部品ID”列的部品组成的,
例如:“部组名” P88958141306部组是由“P88958141306"和”B88958141403“部品组成,
理想效果:在“加工排产”表中单击“导入加工品”时,先判断是否是部组品,如是则,先插入成员部品名,再导入部组名
理想效果如下:
部组名部品ID
P88958141306
B88958141403
P88958141306
P88958131903
B88958131701
P88958131903
B88958112300
B88958112700
B88958111903
P889581126

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


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

Dim filter1 As String
filter1 = "商品名 in ('" & e.form.controls("CheckedComboBox1").Text.replace(",", "','") & "')  and 优先级 Is Not null and 部组名 Is Not null"
Dim bzs As List(Of String) = DataTables("加工用製品构成").GetValues("部组名", filter1, "优先级")
Systemready = False
Dim t As Table = e.form.controls("Table1").Table
t.ResumeRedraw
t.StopRedraw
For Each bz As String In bzs
    Dim ndr As Row
    Dim pr As DataRow
    For Each pr In DataTables("加工用製品构成").Select("部组名 = '" & bz & "'", "优先级")
        ndr = t.addnew
        ndr("制品名") = pr("商品名")
        ndr("部品id") = pr("部品id")
        ndr("优先级") = pr("优先级")
        ndr("类别") = "计划"
        ndr("制单号") = "" & e.form.controls("CheckedComboBox2").Text & ""
        ndr = t.addnew()
        ndr("制品名") = pr("商品名")
        ndr("部品id") = pr("部品id")
        ndr("优先级") = pr("优先级")
        ndr("类别") = "实际"
        ndr("制单号") = "" & e.form.controls("CheckedComboBox2").Text & ""
    Next
    ndr = t.addnew()
    ndr("制品名") = pr("商品名")
    ndr("部组名") = pr("部组名")
    ndr("优先级") = pr("优先级")
    ndr("类别") = ""
    ndr("制单号") = "" & e.form.controls("CheckedComboBox2").Text & ""
Next

filter1 = "商品名 in ('" & e.form.controls("CheckedComboBox1").Text.replace(",", "','") & "') and 优先级 Is Not null and 部组名 Is null"
Dim drs1 As List(Of DataRow) = DataTables("加工用製品构成").Select(filter1, "[优先级]")
For i1 As Integer = 0 To drs1.count - 1
    Dim dr1 = t.addnew()
    Dim pr1 = drs1(i1)
    dr1("制品名") = pr1("商品名")
    dr1("部组名") = pr1("部组名")
    dr1("优先级") = pr1("优先级")
    dr1("类别") = "计划"
    dr1("制单号") = "" & e.form.controls("CheckedComboBox2").Text & ""
    dr1 = t.addnew()
    dr1("制品名") = pr1("商品名")
    dr1("部组名") = pr1("部组名")
    dr1("优先级") = pr1("优先级")
    dr1("类别") = "实际"
    dr1("制单号") = "" & e.form.controls("CheckedComboBox2").Text & ""
Next

t.ResumeRedraw
Systemready = True

DataTables("加工排产").Save()


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


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

谢谢老师


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


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

老师,还有一个问题,
在“加工排产”表中,对依据制品的集结日对各工序的时间有一个倒退,
现在想要分开一下:
1.对“部品ID”和“部组名”只有一个的,仍然沿用原规则进行时间倒退,
2.对“部品ID”和“部组名”都有的,就比较复杂了

对于部组内的”部品ID"的末序的最后“_结束日” 就是 部组的  ”第1序_配膳日“
(因为先加工出各部品,完事后,再进行部组)

自己搞不定,麻烦老师,谢谢!


 回到顶部
总数 11 1 2 下一页