Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
表A |
表C 数据组合表 |
|||||||||
平面分区 |
平面分格代号 |
平面分格尺寸 |
平面分区 |
立面分区 |
平面分格代号 |
平面分格代号 |
平面分格尺寸 |
立面分格尺寸 |
|
|
第一分区 |
B1 |
100 |
第一分区 |
第一分区 |
B1 |
H1 |
100 |
1100 |
|
|
第一分区 |
B2 |
200 |
第一分区 |
第一分区 |
B1 |
H2 |
100 |
1200 |
|
|
第一分区 |
B3 |
300 |
|
|
|
|
|
|
||
第二分区 |
B4 |
400 |
第一分区 |
第一分区 |
B2 |
H1 |
200 |
1100 |
|
|
第二分区 |
B5 |
500 |
第一分区 |
第一分区 |
B2 |
H2 |
200 |
1200 |
|
|
第三分区 |
B6 |
600 |
|
|
|
|
|
|
||
第三分区 |
B2 |
700 |
第一分区 |
第一分区 |
B3 |
H1 |
300 |
1100 |
|
|
第三分区 |
B3 |
800 |
第一分区 |
第一分区 |
B3 |
H2 |
300 |
1200 |
|
|
第三分区 |
B4 |
900 |
|
|
|
|
|
|
|
|
第二分区 |
第二分区 |
B4 |
H1 |
400 |
1300 |
|
||||
第二分区 |
第二分区 |
B4 |
H2 |
400 |
1400 |
|
||||
表B |
第二分区 |
第2分区 |
B4 |
第二分区 |
400 |
1500 |
|
|||
立面分区 |
立面分格代号 |
立面分格尺寸 |
第二分区 |
第二分区 |
B4 |
H4 |
400 |
1600 |
|
|
第一分区 |
H1 |
1100 |
|
|
|
|
|
|
||
第一分区 |
H2 |
1200 |
第二分区 |
第二分区 |
B5 |
H1 |
500 |
1300 |
|
|
第二分区 |
H1 |
1300 |
第二分区 |
第二分区 |
B5 |
H2 |
500 |
1400 |
|
|
第二分区 |
H2 |
1400 |
第二分区 |
第二分区 |
B5 |
H3 |
500 |
1500 |
|
|
第二分区 |
H3 |
1500 |
第二分区 |
第二分区 |
B5 |
H4 |
500 |
1600 |
|
|
第二分区 |
H4 |
1600 |
|
|
|
|
|
|
|
|
第三分区 |
H5 |
1700 |
第三分区 |
第三分区 |
B6 |
H5 |
600 |
1700 |
|
|
第三分区 |
H6 |
1800 |
第三分区 |
第三分区 |
B6 |
H6 |
600 |
1800 |
|
|
第三分区 |
B4 |
900 |
第三分区 |
第三分区 |
B6 |
B4 |
600 |
900 |
|
|
|
|
|
|
|
|
|||||
|
|
第三分区 |
第三分区 |
B2 |
H5 |
700 |
1700 |
|
||
第三分区 |
第三分区 |
B2 |
H6 |
700 |
1800 |
|
||||
第三分区 |
第三分区 |
B2 |
B4 |
700 |
900 |
|
||||
|
|
|
|
|
|
|||||
第三分区 |
第三分区 |
B3 |
H5 |
800 |
1700 |
|
||||
第三分区 |
第三分区 |
B3 |
H6 |
800 |
1800 |
|
||||
第三分区 |
第三分区 |
B3 |
B4 |
800 |
900 |
|
||||
|
|
|
|
|
|
|
||||
第三分区 |
第3分区 |
B4 |
H5 |
900 |
1700 |
|
||||
第三分区 |
第3分区 |
B4 |
H6 |
900 |
1800 |
|
||||
第三分区 |
第3分区 |
B4 |
B4 |
900 |
900 |
|
||||
......... |
......... |
......... |
......... |
......... |
......... |
|
老师好! 我按您的代码稍微调整了一下啊,原来是采用数组,现在采用集合GetValue方法,代码如下:
问题1 一直报错:索引超出范围。必须为非负值并小于集合大小。参数名: index
问题2 如果表A 和 表B 的分区值数量不一样时,生成的表C数据就缺 集合第一元素 例如:表A 平面分区列的值:第一分区 第二分区 第三分区 第四分区 数量是4
表B 立面分区列的值:第一分区 第二分区 第三分区
数量是3
那么生成表C数据时 就没有第一分区的数据 如果表A,表B的分区值相等,例如都是4个分区,数量都是4 ,那么生成表C数据时就完整
问题3 不管表C生成的数据是否完整,生成的数据都是重复一遍 如下
请老师看看代码,代码是放在MainTableChanged事件中的,问题出在哪儿,
谢谢老师!
平面分区 |
平面分格代号 |
立面分格代号 |
立面分区 |
平面分格尺寸 |
立面分格尺寸 |
|
第二分区 |
B4 |
H1 |
第二分区 |
400 |
1300 |
|
第二分区 |
B4 |
H2 |
第二分区 |
400 |
1400 |
|
第二分区 |
B4 |
H3 |
第二分区 |
400 |
1500 |
|
第二分区 |
B4 |
H4 |
第二分区 |
400 |
1600 |
|
第三分区 |
B6 |
H5 |
第三分区 |
600 |
1700 |
|
第三分区 |
B6 |
H6 |
第三分区 |
600 |
1800 |
|
第三分区 |
B6 |
H4 |
第三分区 |
600 |
900 |
|
......... |
......... |
......... |
......... |
......... |
......... |
|
第二分区 |
B4 |
H1 |
第二分区 |
400 |
1300 |
数据重复 |
第二分区 |
B4 |
H2 |
第二分区 |
400 |
1400 |
|
第二分区 |
B4 |
H3 |
第二分区 |
400 |
1500 |
|
第二分区 |
B4 |
H4 |
第二分区 |
400 |
1600 |
|
第三分区 |
B6 |
H5 |
第三分区 |
600 |
1700 |
|
第三分区 |
B6 |
H6 |
第三分区 |
600 |
1800 |
|
第三分区 |
B6 |
H4 |
第三分区 |
600 |
900 |
|
......... |
......... |
......... |
......... |
......... |
......... |
|
MainTableChanged事件代码
Dim a1 As list(Of String) =
DataTables("表A").GetValues("平面分区")
Dim a2 As list(Of String) =
DataTables("表B").GetValues("立面分区")
For i As Integer = 1 To a1.count
If a1(i) = a2(i) Then
For Each dr1 As
DataRow In DataTables("表A").select("[平面分区]='" & a1(i) & "'")
For Each dr2 As DataRow In DataTables("表B").select("[立面分区]='" & a2(i) & "'")
Dim r As Row = Tables("表C").addnew
r("平面分区") = a1(i)
r("立面分区") = a2(i)
r("平面分格代号") = dr1 ("平面分格代号")
r("立面分格代号") = dr2 ("立面分格代号")
r("平面分格尺寸") = dr1 ("平面分格尺寸")
r("立面分格尺寸") = dr2 ("立面分格尺寸")
Next
Next
End If
Next