以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]简单的排列组合代码  (http://www.foxtable.com/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……………………的所有排列组合放在第三列中
请问该如何写代码,想了很久了,不会用递归函数,请大虾们指点下,如下图

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


--  作者:有点甜
--  发布时间: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
--  
 多年没写,忘记怎么写了图片点击可在新窗口打开查看 好不容易终于是弄出来了

 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:组合排列例子.table


--  作者: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