Foxtable(狐表)用户栏目专家坐堂 → 求助:求一段设定BOM的级次码的代码?(已解决)


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

主题:求助:求一段设定BOM的级次码的代码?(已解决)

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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
求助:求一段设定BOM的级次码的代码?(已解决)  发帖心情 Post By:2016/11/6 21:53:00 [只看该作者]

求一段代码,得到BOM的级次码,第一张图是空的,第二张图是要的效果。就是点按钮事件后,出现第二张图效果。


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

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

 

附上示例:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:设定bom级次码.table

 

谢谢!

[此贴子已经被作者于2016/11/7 4:26:21编辑过]

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


加好友 发短信
等级:狐神 帖子:4650 积分:33912 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2016/11/6 23:35:00 [只看该作者]

Dim y As String = "A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z"
Dim yws As new List(of String)
For Each yw As String In y.Split("|")
    yws.Add(yw)
Next
For Each dr As DataRow In DataTables("表A").DataRows
    If dr.IsNull("子键")
        dr("级次") = Nothing
    Else
        Dim s As String = yws.Indexof(dr("子键").Chars(0))
        If dr("子键").Length > 1
            For i As Integer = 1 To dr("子键").Length - 1
                s += "." & dr("子键").Chars(i)
            Next
        End If
        dr("级次") = s
    End If
Next


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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2016/11/7 4:02:00 [只看该作者]

以下是引用y2287958在2016/11/6 23:35:00的发言:
Dim y As String = "A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z"
Dim yws As new List(of String)
For Each yw As String In y.Split("|")
    yws.Add(yw)
Next
For Each dr As DataRow In DataTables("表A").DataRows
    If dr.IsNull("子键")
        dr("级次") = Nothing
    Else
        Dim s As String = yws.Indexof(dr("子键").Chars(0))
        If dr("子键").Length > 1
            For i As Integer = 1 To dr("子键").Length - 1
                s += "." & dr("子键").Chars(i)
            Next
        End If
        dr("级次") = s
    End If
Next

谢谢,不过理解错了,执行的结果最后两条是错的,不是2.1和2.1.1,而应该是6.1和6.1.1,我要解决的就是同一个BOM中,有两个半成品都是用到同样的料,在用狐表示例(递归函数)的方式形成目录树的时候,就会在这两个半成品下面挂着两个相同的料号,实际上就是一笔。我想通过这种级次码生成目录树,就不会出现这样的问题。


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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2016/11/7 4:26:00 [只看该作者]

原来我以前问过,以前没仔细研究这段代码,原来是可以通用的,之前以为是通过级次来实现的,实际根本就没用到这个字段,实在不好意思,自己结案!要学好狐表,还得细研究代码,不能拿来主义。感谢狐爸以及帮助过我的前辈!

http://www.foxtable.com/bbs/dispbbs.asp?BoardID =2&ID=79245&skin=0


 回到顶部