Foxtable(狐表)用户栏目专家坐堂 → [求助] BOM 在导出的时候,将每个组件当成一个独立的Sheet输出


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

主题:[求助] BOM 在导出的时候,将每个组件当成一个独立的Sheet输出

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


加好友 发短信
等级:六尾狐 帖子:1309 积分:9507 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助] BOM 在导出的时候,将每个组件当成一个独立的Sheet输出  发帖心情 Post By:2017/10/13 20:17:00 [只看该作者]


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

 

BOM 在导出的时候,将每个组件当成一个独立的Sheet输出

 

如上图所示,如何可以做到,将整个BOM输入为一个BOM表,将每一个组件下的父阶输出为独立的Sheet

 

注,可以根据i 列中的 “--” 判断

[此贴子已经被作者于2017/10/13 20:17:27编辑过]

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/13 20:35:00 [只看该作者]

按i 列中的 “--” 锁筛选后再导出

Tables("表A").Filter = "i = '--'"

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


加好友 发短信
等级:六尾狐 帖子:1309 积分:9507 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2017/10/13 21:07:00 [只看该作者]

以下是引用有点蓝在2017/10/13 20:35:00的发言:
按i 列中的 “--” 锁筛选后再导出

Tables("表A").Filter = "i = '--'"

 

还是不太明白。这样只可以导出全部的组件而,我的想法是每一个组件生成一个Sheet

 

如:

11       1R.51.BMU752KT000/001

 

是一个组件,则生成单独的Sheet,Sheet的名称为对应行的(“名称”)

组件下的所有物料,含组件,复制到新的Sheet上


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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/13 21:53:00 [只看该作者]

Dim t As Table = Tables("表A").
Dim Products As List(Of String) = t.DataTable.GetValues("总库号","i='--'")
For Each p As String In Products 
    t.Filter = "总库号 like '" & p & "%'"
    t.SaveExcel("f:\abc.xls",p)
Next

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


加好友 发短信
等级:六尾狐 帖子:1309 积分:9507 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2017/10/16 16:18:00 [只看该作者]


此主题相关图片如下:foxtable.png
按此在新窗口浏览图片

老师,按代码执行后会出现两个问题,

1》 如总序号是1.3    他会把1.30 1.31..............都含括进去,

1.3
1.3.1
1.3.2
1.30
1.31
    我修改代码为     tb.Filter = "总序号 like '" & p & ".%'" Or "总序号 =  '" & p & "'"

    但出现如上图的错误。
 
2》 如上图所示,他会把后续其它阶层的也含括进去 
这个我就不知如何处理了。 
1.1
1.1.1
1.1.1.1
1.1.1.2
1.1.1.3
1.1.1.4

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/16 20:32:00 [只看该作者]

tb.Filter = "总序号 like '" & p & ".%' Or 总序号 =  '" & p & "'"

编号规律要统一,如
1.03
1.03.01
1.03.02
1.30
1.31

或者增加辅助列进行分类

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


加好友 发短信
等级:六尾狐 帖子:1309 积分:9507 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2017/10/16 21:35:00 [只看该作者]


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

 

 

tb.Filter = "总序号 like '" & p & ".%' Or 总序号 =  '" & p & "'"

 

执行后,得到上面左边的效果,但我想要的是右边的样子。



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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/16 21:54:00 [只看该作者]

参考6楼后面的2种用法

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/17 9:13:00 [只看该作者]

 不会做的话,把你的数据表发上来测试。

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


加好友 发短信
等级:六尾狐 帖子:1309 积分:9507 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2017/10/17 14:17:00 [只看该作者]

谢谢老师,已经做好了,思路很重要,,,,,,,把代码分享出来。。。。。

 

Dim tb As Table = Tables(e.Form.Name & "_Table1")
Dim dt As DataTable = tb.DataTable   
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    tb.SaveExcel(dlg.FileName, "BOM")  '保存文件   
    Dim Ps As List(Of String) = dt.GetValues("排序号","i = '--'")
    If ps.Count > 0 Then
        For Each p As String In Ps
        Dim fr As DataRow = dt.find("排序号 = '" & P & "'")
        Dim jc As Integer = fr("阶层")
            tb.Filter = "( 阶层 = '"  & jc + 1 & "' and 排序号 Like '" & p & ".%') or (排序号 =  '" & p & "' and 阶层 = '"  & jc & "')"
           tb.SaveExcel(dlg.FileName,tb.Rows(0)("名称"))
        Next
    End If
End If

Functions.Execute("打开导出文件" , dlg.FileName )

[此贴子已经被作者于2017/10/17 14:18:03编辑过]

 回到顶部