以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于数据排列组合填充问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=194776)

--  作者:刘效功天津
--  发布时间:2025/1/13 15:21:00
--  关于数据排列组合填充问题
老师好,有一个问题是关于跨表数据进行排列组合填充的问题,代码没有完全实现想要的功能,请老师看看代码问题在哪儿,谢谢老师, 具体问题描述见压缩文件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据的排列组合填充.zip


--  作者:有点蓝
--  发布时间:2025/1/13 15:39:00
--  
请上传实例测试
--  作者:刘效功天津
--  发布时间:2025/1/13 16:35:00
--  跨表数据排列组合填充
老师好,测试代码放在MainTableChanged
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表数据排列组合测试文件.zip

事件中进行测试  方便测试,谢谢老师
--  作者:有点蓝
--  发布时间:2025/1/13 16:47:00
--  
生成的结果什么地方有问题?正确的结果是什么?
--  作者:刘效功天津
--  发布时间:2025/1/13 16:53:00
--  
老师,您看看数据,就是宽度分格2,3,4,5  高度分格2,3,4,5的数据都是一样的,没有根据门窗信息表的数据进行填充
--  作者:有点蓝
--  发布时间:2025/1/13 17:06:00
--  
正确的结果是什么?手填一份截图看看
--  作者:刘效功天津
--  发布时间:2025/1/13 17:14:00
--  
C1212 B1 100 10 框-挺 内开扇 H1 1000 100 框-框
C1212 B1 100 10 框-挺 内开扇 H2 3000 400 框-挺
C1212 B1 100 10 框-挺 内开扇 H3 3000 300 框-框
C1212 B1 100 10 框-挺 内开扇 H4 4000 400 框--框 内开扇
C1212 B2 200 20 挺-挺 H1 1000 100 框-框
C1212 B2 200 20 挺-挺 H2 3000 400 框-挺
C1212 B2 200 20 挺-挺 H3 3000 300 框-框
C1212 B2 200 20 挺-挺 H4 4000 400 框--框 内开扇
C1212 B3 300 30 框-框 H1 1000 100 框-框
C1212 B3 300 30 框-框 H2 3000 400 框-挺
C1212 B3 300 30 框-框 H3 3000 300 框-框
C1212 B3 300 30 框-框 H4 4000 400 框--框 内开扇
C2805 B1 1111 11 H1 555 5 框-挺
C2805 B1 1111 11 H2 6666 6 外开扇
C2805 B1 1111 11 H3 7777 7 外开扇
C2805 B2 2222 22 框-挺 H1 555 5 框-挺
C2805 B2 2222 22 框-挺 H2 6666 6 外开扇
C2805 B2 2222 22 框-挺 H3 7777 7 外开扇

--  作者:有点蓝
--  发布时间:2025/1/13 17:33:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表数据排列组合测试文件.zip


--  作者:刘效功天津
--  发布时间:2025/1/13 17:40:00
--  
老师好,我还没升级软件,麻烦您把代码张贴一下,我先试试,谢谢老师


--  作者:有点蓝
--  发布时间:2025/1/14 9:18:00
--  
Dim dr As DataRow

Dim pfs() As String = {"宽度第1分格1", "宽度第2分格1", "宽度第3分格1"}
Dim lfs() As String = {"高度第一分格1", "高度第二分格1", "高度第三分格1", "高度第四分格1"}

For Each drc As DataRow In DataTables("门窗信息").select("[门窗代号] is not null")
    dr = DataTables("门窗玻璃").find("[门窗代号] =\'" & drc("门窗代号") & "\'")
    If dr Is Nothing Then
        
        For i1 As Integer = 0 To pfs.count - 1
            For i2 As Integer = 0 To lfs.count - 1
                
                Dim r As Row = Tables("门窗玻璃").addnew
                r("门窗代号") = drc("门窗代号")
                
                r("宽度分格1") = drc (pfs(i1))
                r("高度分格1") = drc (lfs(i2))

                r("宽度分格2") = drc("宽度第1分格2")
                r("宽度分格3") = drc("宽度第1分格3")
                r("宽度分格4") = drc("宽度第1分格4")
                r("宽度分格5") = drc("宽度第1分格5")
                
                Dim s As String = lfs(i2).TrimEnd("1")
                r("高度分格2") = drc(s & "2")
                r("高度分格3") = drc(s & "3")
                r("高度分格4") = drc(s & "4")
                r("高度分格5") = drc(s & "5")
                
            Next
        Next
    End If
Next 


DataTables("门窗玻璃").DeleteFor("[宽度分格1] is null or  [高度分格1] is null")