Foxtable(狐表)用户栏目专家坐堂 → 请教一个排列组合的问题


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

主题:请教一个排列组合的问题

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


加好友 发短信
等级:小狐 帖子:359 积分:3403 威望:0 精华:0 注册:2011/8/2 20:53:00
请教一个排列组合的问题  发帖心情 Post By:2011/9/6 23:44:00 [只看该作者]

表A有“代码”列   (例如:a,b,c,c,c2,v4,b5……)

表B有“参数”列并且有许多行数据(例如有:11.2、11.6C、1.4H2、……………………)

表C有“型号”列有多行数据(例如:A1、B4、B8、……)

 

要求表D的“产品代码”列以表A“代码”列为开头,与表B的“参数”列、与表C的“型号”列组合,能组合多少就多少。


 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251397 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/7 7:54:00 [只看该作者]

Dim xhs As List(of String)  = DataTables("表A").GetUniqueValues("代码 Is Not Null","代码")
Dim css As List(of String)  = DataTables("表B").GetUniqueValues("参数 Is Not Null","参数")
For Each xh As String In xhs
    For Each cs As String In css
        Dim r As Row = Tables("表C").AddNew()
        r("型号") = xh & cs
    Next
Next


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


加好友 发短信
等级:小狐 帖子:359 积分:3403 威望:0 精华:0 注册:2011/8/2 20:53:00
  发帖心情 Post By:2011/9/7 10:51:00 [只看该作者]

狐爸,可能我表达的意思不到位,导致你给的代码出现二个问题,就是无何止的进行“组合”动作,最终软件自动退出…

第二个问题:并没有真正进行组合,

 

 

表A有“代码”列   (例如:a,b,……)

表B有“参数”列并且有许多行数据(例如有:第一行是:11.2、第二行:是11.6C、第三行:1.4H2、……………………)

表C有“型号”列有多行数据(例如:第一行:H1.1、第二行:T.3S、第三行:3-B8、……)

 

要求表D的“产品代码”列以表A“代码”列为开头,与表B的“参数”列、与表C的“型号”列组合,能组合多少就多少。

 

组合形式如:a 11.2 H1.1
                 a 11.6C H1.1

                 …

                 b 11.6C T.36

                 …… ……

 

 

                    


 回到顶部
帅哥,在线噢!
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251397 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/7 11:23:00 [只看该作者]

打开这个文件:

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

在命令窗口执行下面的代码:

 

Dim ss1 As List(of String)  = DataTables("表A").GetUniqueValues("第一列 Is Not Null","第一列")
Dim ss2 As List(of String)  = DataTables("表B").GetUniqueValues("第一列 Is Not Null","第一列")
Dim ss3 As List(of String)  = DataTables("表C").GetUniqueValues("第一列 Is Not Null","第一列")
For Each s1 As String In ss1
    For Each s2 As String In ss2
        For Each s3 As String In ss3
            output.show(s1 & "." & s2 & "." &  s3 )
        Next
    Next
Next


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


加好友 发短信
等级:幼狐 帖子:156 积分:1627 威望:0 精华:0 注册:2011/4/20 10:44:00
  发帖心情 Post By:2011/9/7 11:24:00 [只看该作者]

是不是必须按 代码+参数+型号 这个顺序

如果是:

select a.代码+b.参数+c.型号 as 组合 from {表A} a,{表B} b, {表C} c


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


加好友 发短信
等级:小狐 帖子:359 积分:3403 威望:0 精华:0 注册:2011/8/2 20:53:00
  发帖心情 Post By:2011/9/7 12:03:00 [只看该作者]

谢谢你来看我的问题,你的问题:“是的,必要按照那上面的顺序进行组合!


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


加好友 发短信
等级:小狐 帖子:359 积分:3403 威望:0 精华:0 注册:2011/8/2 20:53:00
  发帖心情 Post By:2011/9/7 12:25:00 [只看该作者]

谢谢狐爸,如何让这个代码所组合出来的数据显示到表D的第一列中?


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2011/9/7 12:36:00 [只看该作者]

Dim ss1 As List(of String)  = DataTables("表A").GetUniqueValues("第一列 Is Not Null","第一列")
Dim ss2 As List(of String)  = DataTables("表B").GetUniqueValues("第一列 Is Not Null","第一列")
Dim ss3 As List(of String)  = DataTables("表C").GetUniqueValues("第一列 Is Not Null","第一列")
DataTables("表D").DataRows.Clear
For Each s1 As String In ss1
    For Each s2 As String In ss2
        For Each s3 As String In ss3
          Dim r As Row = Tables("表D").AddNew()
               r("第一列") = s1 & "." & s2 & "." &  s3            
        Next
    Next
Next

 回到顶部