以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]简单的排列组合代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46436) |
||||
-- 作者:mosquito1003 -- 发布时间:2014/2/23 19:23:00 -- [求助]简单的排列组合代码 如下图表B中第一列有A,B,C……………………,然后对应的第二列有A对应A1、A2…………,B也是一样的对应,求A,B,C……………………的所有排列组合放在第三列中 请问该如何写代码,想了很久了,不会用递归函数,请大虾们指点下,如下图
|
||||
-- 作者:有点甜 -- 发布时间:2014/2/23 19:30:00 -- 之前有一个例子,函数写在在了内部函数里了,你可以看看。 |
||||
-- 作者:mosquito1003 -- 发布时间:2014/2/23 20:22:00 -- 例子有点难,没有看懂!可否帮忙做一个跟我一样的例子!非常的感谢! |
||||
-- 作者:y2287958 -- 发布时间:2014/2/23 21:06:00 -- 参照这个代码: Dim ss1() As String = {"A1","A2"} Dim ss2() As String = {"B1","B2","B3"} Dim ss3() As String = {"C1","C2","C3"} 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 |
||||
-- 作者:mosquito1003 -- 发布时间:2014/2/23 21:20:00 -- 这个代码我也想过了!但是没有办法去动态的去定义每一个数组!因为前面的数组是变动的,而且For Next 的镶套的层数也是变动的! 这点没有办法去解决! |
||||
-- 作者:mosquito1003 -- 发布时间:2014/2/23 21:22:00 -- 因为一开始的数组是变动的!可能会有很多行! |
||||
-- 作者:有点甜 -- 发布时间:2014/2/23 21:35:00 -- 多年没写,忘记怎么写了 好不容易终于是弄出来了
|
||||
-- 作者:y2287958 -- 发布时间:2014/2/23 21:35:00 -- 上个例子吧 输入一些你觉得难以实现的数据
[此贴子已经被作者于2014-2-23 21:36:15编辑过]
|
||||
-- 作者:mosquito1003 -- 发布时间:2014/2/23 21:46:00 -- 有点甜,非常感谢了!问题解决了!高手啊!非常的感激! |
||||
-- 作者:don -- 发布时间:2014/2/23 22:36:00 -- Dim s1,s2,s3,sql,Lst3,Bm,Lm1,Lm2 As String Bm = "表B" Lm1 = "第一列" Lm2 = "第二列" lst3 = DataTables(Bm).GetComboListString(Lm1, Lm1 & " > \'\'",Lm1) If lst3 > "" Then s1="Select " & lst3.Replace("|","." & Lm2 & " +\'-\'+ ") & "." & Lm2 & " As 组合 from " s2 =",(Select " & Lm2 & " from {" & Bm & "} Where " & Lm1 & " = \'" For Each s3 In lst3.split("|") sql+ =s2 & s3 & "\') " & s3 Next Output.Show(s1 & sql.Substring(1)) End If |