Dim skdr As DataRow = e.DataRow '返回改变的行
Dim skdc As DataCol = e.DataCol '返回改变的列
Dim skdt As DataTable '定义一个全表变量,有于遍历整个表
Dim skprs As List(of String) = DataTables("Gztj").getvalues("Gcbw") '反回统计的行的主键值以集合的形式存置
Dim sksks As List(of String) = DataTables("Gztj").getvalues("Skzd") '以集合的形式存放施工组队的名字
Dim sktj() As String '定义一字符型数组变量
sktj=skprs.Toarray() '把各组工程量统计表的施工部位存在数组变量中
Dim sksc() As String '定义一个字符型数组变量
sksc=sksks.ToArray() '把各施工组队存于数组变量中
Dim tjrows As List(of DataRow) '定义一个行类型的集合变量
tjrows = DataTables("Gztj").Select("") '把统计表的所有行存于集合中
Dim slwg(sksks.count),sgyg(sksks.count),stongc30(sksks.count),stongc40(sksks.count),sjinxing(sksks.count) As Double
'定义双精度数值变量,用于计算各施工组队的对应工程量,数组元素的个数与施工队的组数一致,即由sksks.count来动态决定.
Dim i,j,r,l As Integer '定义一组整数型变量,用作计数器(数值型变量默认值是0)
If skdc.name = "Skzd" Then '如果改变的列是Skzd,即施工组队
For Each skdt In DataTables '遍历所有的表
Do While i<=sksks.count-1
output.show("skdt.name=" & skdt.name)
output.show("sktj(" & i & ")=" & sktj(i))
If skdt.name=sktj( i ) Then '如果当前遍历的表正好是各组施工队
MessageBox.show("代码执行跟踪1") '的工程统计部位,则统计各工程量
For j=0 To sksks.count-1 '
slwg(j) = skdt.compute("sum(Sjlwg)","[Skzd]='" & sksc(j) & "'") '计算该表中各施工队带肋钢筋工程量'
sgyg(j) = skdt.compute("sum(Sjgyg)","[Skzd]='" & sksc(j) & "'") '计算该表中各施工队带肋钢筋工程量
stongc30(j) =skdt.compute("sum(TongC30)","[Skzd]='" & sksc(j) & "'") '计算该表中各施工队带肋钢筋工程量
stongc40(j) = skdt.compute("sum(TongC40)","[Skzd]='" & sksc(j) & "'") '计算该表中各施工队带肋钢筋工程量
sjinxing(j) = skdt.compute("sum(Jinxing)","[Skzd]='" & sksc(j) & "'") '计算该表中各施工队带肋钢筋工程量
vars("k")=vars("k")+1
Next '与For对应的循环
i=i+1
l=1
output.show("i=" & i)
ElseIf skdt.name<>sktj(i) Then
i=i+1
output.show("代码执行跟踪2")
End If
output.show("k=" & vars("k"))
Loop
Next
End If
麻烦看一下