以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 表数据如何拆分  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=150576)

--  作者:chen_sheng
--  发布时间:2020/6/2 14:50:00
--  [求助] 表数据如何拆分
表数据拆分

如何分别把套版型号 高 及 立线型号  高  分拆为两条新记录


图片点击可在新窗口打开查看此主题相关图片如下:表数据拆分.png
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:单表分拆.table




[此贴子已经被作者于2020/6/2 14:52:07编辑过]

--  作者:有点蓝
--  发布时间:2020/6/2 15:02:00
--  
按照什么规则和逻辑拆分?
--  作者:chen_sheng
--  发布时间:2020/6/2 15:21:00
--  
1、套版拆分
  套版型号有值 就新增两条记录
拆第一条:
产品型号=套版型号
洞高= 洞高
洞宽=0
洞深=洞深
数量=(原数量*2)
导入类型=\'套板\'
来源=\'原行号\'
拆第二条:
产品型号=套版型号
洞高= 0
洞宽=洞宽
洞深=洞深
数量=(原数量*1)
导入类型=\'套板\'
来源=\'原行号\'

2 套线拆分
套线型号有值 就新增两条记录
拆第一条:
产品型号=立线型号
洞高= 洞高
洞宽=0
洞深=0
数量=(原数量*4)
导入类型=\'套线\'
来源=\'原行号\'
拆第二条:
产品型号=门头型号
洞高= 0
洞宽=洞宽
洞深=0
数量=(原数量*2)
导入类型=\'套线\'
来源=\'原行号\'

3.不能重复拆分  拆分订单表

[此贴子已经被作者于2020/6/2 15:23:22编辑过]

--  作者:有点蓝
--  发布时间:2020/6/2 16:04:00
--  
直接按照这个逻辑套代码不就行了

Dim r As Row = Tables("生产单").Current
Dim dr As DataRow
If r IsNot Nothing Then
    dr = DataTables("生产单").AddNew
    dr("产品型号")=r("套版型号")
    dr("洞高")= r("洞高")
    dr("洞宽")=0
    dr("洞深")=r("洞深")
    dr("数量")=r("数量")*2
    dr("导入类型")="套板"
    dr("来源")=r("原行号")

    dr = DataTables("生产单").AddNew
    dr("产品型号")=r("套版型号")
    dr("洞高")= 0
    dr("洞宽")=r("洞宽")
    dr("洞深")=r("洞深")
    dr("数量")=r("数量")*1
    dr("导入类型")="套板"
    dr("来源")=r("原行号")

    dr = DataTables("生产单").AddNew
    dr("产品型号")=r("立线型号")
    dr("洞高")= r("洞高")
    dr("洞宽")=0
    dr("洞深")=0
    dr("数量")=r("数量")*4
    dr("导入类型")="套线"
    dr("来源")=r("原行号")
……
End If

--  作者:chen_sheng
--  发布时间:2020/6/2 17:38:00
--  
非常感谢指导!   单条记录可以了 
但是窗口表内记录均需要这样生成咋处理呢  麻烦再给予一下指导 谢谢

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:单表分拆.table


Dim r As Row = Tables("销售订单").Current
Dim dr As DataRow
If r IsNot Nothing Then
    dr = DataTables("销售订单").AddNew
    dr("单号")=r("单号")
    dr("产品型号")=r("套板型号")
    dr("洞高")= r("洞高")
    dr("洞宽")=0
    dr("洞深")=r("洞深")
    dr("数量")=r("数量")*2
    dr("导入类型")="套板"
    dr("来源")=r("行号")
    dr("行号")=DataTables("销售订单").Compute("Max(行号)") + 1
    
    dr = DataTables("销售订单").AddNew
    dr("单号")=r("单号")
    dr("产品型号")=r("套板型号")
    dr("洞高")= 0
    dr("洞宽")=r("洞宽")
    dr("洞深")=r("洞深")
    dr("数量")=r("数量")*1
    dr("导入类型")="套板"
    dr("来源")=r("行号")
    dr("行号")= DataTables("销售订单").Compute("Max(行号)") + 1
    
    dr = DataTables("销售订单").AddNew
    dr("单号")=r("单号")
    dr("产品型号")=r("立线型号")
    dr("洞高")= r("洞高")
    dr("洞宽")=0
    dr("洞深")=0
    dr("数量")=r("数量")*4
    dr("导入类型")="套线"
    dr("来源")=r("行号")
    dr("行号")= DataTables("销售订单").Compute("Max(行号)") + 1
    
    dr = DataTables("销售订单").AddNew
    dr("单号")=r("单号")
    dr("产品型号")=r("立线型号")
    dr("洞高")= 0
    dr("洞宽")=r("洞宽")
    dr("洞深")=0
    dr("数量")=r("数量")*4
    dr("导入类型")="套线"
    dr("来源")=r("行号")
    dr("行号")= DataTables("销售订单").Compute("Max(行号)") + 1
    \'Tables("销售订单").Save
End If

[此贴子已经被作者于2020/6/2 18:10:21编辑过]

--  作者:有点蓝
--  发布时间:2020/6/2 20:06:00
--  
遍历所有行

Dim drs As List(Of DataRow)
drs = DataTables("
销售订单").Select("套板型号 is not null")
For Each 
dr As Datarow In drs
   ……

Next