以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 组合件排产 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101003)
|
-- 作者:zhangning
-- 发布时间:2017/5/23 13:59:00
-- 组合件排产
开发者:qdkf
老师,您好! 我想对组合件进行排产,组合件在我司主要是指类似焊接这样的工序, 例如:将A部品和B部品焊接,形成C部组(组合件)。 在“加工排产”窗口的“导入加工品”按钮中, 想要达到的效果是: 先判断一下所选的组装品的《加工用製品构成》是否含有部组,
如含有,则先引入部组所需要的部品名,假设有有2个,就是2行,
在这2行后面紧接着插入部组名,只占一行。 并按“优先级”升序排列, 现在的代码达不到以上要求,请老师帮帮忙,谢谢!
|
-- 作者:有点色
-- 发布时间: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
-- 发布时间: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 以此类推,请问老师,这样如何改编码呀?
|
-- 作者:有点色
-- 发布时间:2017/5/23 17:37:00
--
必须把你的优先级编号修改一下才行,改成这样的格式
04-01-01
04-01-11
04-01-12
04-02-01
04-02-10
|
-- 作者:zhangning
-- 发布时间:2017/5/24 9:47:00
--
谢谢老师,忘了说明,过滤条件中还要加入,“优先级”不能为空,另外,还希望在有部组的部品成员之后加入部组名, 例如有A和B两个部品,它们组合成C部组, 在导入时,先将A和B导入,放入“部品ID”列,紧接者导入部组名C,放入“部组名”列,
没有部组的,就只导入部品就行。
麻烦老师,请帮帮忙,谢谢!
|
-- 作者:有点色
-- 发布时间:2017/5/24 9:52:00
--
1、filter1 = "商品名 in (\'" & e.form.controls("CheckedComboBox1").Text.replace(",", "\',\'") & "\') and 优先级 is not null"
2、没看懂你的意思,根据例子截图说明。
|
-- 作者:zhangning
-- 发布时间:2017/5/24 10:32:00
--
在“加工用製品构成”表中,如果“部组名”列不为空,则说明是一个组合件,是由其后的“部品ID”列的部品组成的,例如:“部组名” P88958141306部组是由“P88958141306"和”B88958141403“部品组成, 理想效果:在“加工排产”表中单击“导入加工品”时,先判断是否是部组品,如是则,先插入成员部品名,再导入部组名 理想效果如下:
部组名 | 部品ID |
| P88958141306 |
| B88958141403 |
P88958141306 | |
| P88958131903 |
| B88958131701 |
P88958131903 | |
| B88958112300 |
| B88958112700 |
| B88958111903 |
P889581126 | |
|
-- 作者:有点色
-- 发布时间: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
-- 发布时间:2017/5/24 11:08:00
--
谢谢老师
|
-- 作者:zhangning
-- 发布时间:2017/5/25 15:09:00
--
老师,还有一个问题,在“加工排产”表中,对依据制品的集结日对各工序的时间有一个倒退, 现在想要分开一下: 1.对“部品ID”和“部组名”只有一个的,仍然沿用原规则进行时间倒退, 2.对“部品ID”和“部组名”都有的,就比较复杂了
对于部组内的”部品ID"的末序的最后“_结束日” 就是 部组的 ”第1序_配膳日“ (因为先加工出各部品,完事后,再进行部组)
自己搞不定,麻烦老师,谢谢!
|