Foxtable(狐表)用户栏目专家坐堂 → 分箱功能虽然实现,请专家帮助优化一下,我实现的太繁琐


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

主题:分箱功能虽然实现,请专家帮助优化一下,我实现的太繁琐

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


加好友 发短信
等级:幼狐 帖子:146 积分:1820 威望:0 精华:0 注册:2016/5/10 15:59:00
分箱功能虽然实现,请专家帮助优化一下,我实现的太繁琐  发帖心情 Post By:2017/11/23 16:01:00 [显示全部帖子]

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


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


加好友 发短信
等级:幼狐 帖子:146 积分:1820 威望:0 精华:0 注册:2016/5/10 15:59:00
  发帖心情 Post By:2017/11/23 16:05:00 [显示全部帖子]

我是使用窗口1,开始每实现一步用了一个按钮,最后把所有的代码进行了整合,集中到了一键分箱的事件里了,请专家老师帮我优化,而且我还中间用了两个表作为中介。感觉写的太麻烦,但又没有能力修改,是不是可以省去中间的两个表直接实现我的功能。

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


加好友 发短信
等级:幼狐 帖子:146 积分:1820 威望:0 精华:0 注册:2016/5/10 15:59:00
  发帖心情 Post By:2017/11/23 16:15:00 [显示全部帖子]

'第一步将记录拆成一条一条的
Dim Cols1() As String = {"长度","宽度","厚度","编号","单个重量","编号"}
Dim Cols2() As String = {"长度","宽度","厚度","编号","单个重量","编号"}
For Each dr1 As DataRow In DataTables("产品数据").Select("[数量] > 0")
    
    For  j As Integer = 1 To dr1("数量")
        Dim dr2 As DataRow = DataTables("产品数据拆分").AddNew()
        For i As Integer = 0 To Cols1.Length -1
            dr2(Cols2(i)) = dr1(Cols1(i))
            dr2("数量")=1
        Next
    Next
Next

'一条条的累加重量不超过500
Dim Sumzl As Integer
Dim k As Integer=1
Dim Cols11() As String = {"长度","宽度","厚度","编号","单个重量","编号","数量"}
Dim Cols22() As String = {"长度","宽度","厚度","编号","单个重量","编号","数量"}
For Each dr11 As DataRow In DataTables("产品数据拆分").Select("[数量] > 0")
    
    sumzl= sumzl + dr11("单个重量")
    If sumzl>500 Then
        sumzl=0
        k=k+1
        
        
    End If
    
    Dim dr22 As DataRow = DataTables("分箱明细").AddNew()
    For i As Integer = 0 To Cols11.Length -1
        
        dr22(Cols22(i)) = dr11(Cols11(i))
        dr22("箱号")=k
    Next
    
Next
'建立分组查看代码进行复制生成分箱结果
Dim g As New GroupTableBuilder("分箱结果", DataTables("分箱明细"))
g.Groups.AddDef("长度")
g.Groups.AddDef("宽度")
g.Groups.AddDef("厚度")
g.Groups.AddDef("单个重量")
g.Groups.AddDef("编号")
g.Groups.AddDef("箱号")
g.Totals.AddDef("数量")
g.Build()
MainTable = Tables("分箱结果")

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


加好友 发短信
等级:幼狐 帖子:146 积分:1820 威望:0 精华:0 注册:2016/5/10 15:59:00
  发帖心情 Post By:2017/11/23 16:15:00 [显示全部帖子]

老师整个项目压缩上传了

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


加好友 发短信
等级:幼狐 帖子:146 积分:1820 威望:0 精华:0 注册:2016/5/10 15:59:00
  发帖心情 Post By:2017/11/23 16:30:00 [显示全部帖子]


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

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


加好友 发短信
等级:幼狐 帖子:146 积分:1820 威望:0 精华:0 注册:2016/5/10 15:59:00
  发帖心情 Post By:2017/11/23 16:45:00 [显示全部帖子]

老师我是根据数量的循环进行先拆分存储到产品拆分的表里,然后在根据条件,一条条的累加,如果总重量超过500就算一箱完毕,箱号进行加一操作,并且存储到分箱明细表里,然后对分箱明细进行分组查询,生成分箱结果。

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


加好友 发短信
等级:幼狐 帖子:146 积分:1820 威望:0 精华:0 注册:2016/5/10 15:59:00
  发帖心情 Post By:2017/11/24 6:06:00 [显示全部帖子]

谢谢老师就是这种效果
[此贴子已经被作者于2017/11/24 6:12:45编辑过]

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


加好友 发短信
等级:幼狐 帖子:146 积分:1820 威望:0 精华:0 注册:2016/5/10 15:59:00
  发帖心情 Post By:2017/11/24 6:07:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:fenxiangjieguo.png
图片点击可在新窗口打开查看

 回到顶部