以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  帮我看看,干嘛不执do loop 语句  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106419)

--  作者:wuchangke
--  发布时间:2017/9/8 11:07:00
--  帮我看看,干嘛不执do loop 语句
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(5),sgyg(5),stongc30(5),stongc40(5),sjinxing(5) As Double \'定义双精度数值变量
Dim Tfnot,Tfyes,i,j,r As Integer
i=0
j=0
r=0
Tfnot=1
Tfyes=1
If skdc.name = "Skzd" Then    \'如果改变的列是Skzd,即施工组队
  For Each skdt In DataTables  \'遍历所有的表
    If skdt.name = sktj(i) Then
    output.show(skdt.name)
      Do While i<= skprs.count-1
      \'如果统计的行与表对应
          output.show("sktj(i)=" & sktj(i))
          Do While j<= 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)\'") \'计算砼C30总数,施工组队是刘明光
          stongc40(j) = skdt.compute("sum(TongC40)","Skzd=\'sksc(j)\'") \'计算砼C40总数,施工组队是刘明光
          sjinxing(j) = skdt.compute("sum(Jinxing)","Skzd=\'sksc(j)\'")   \' 计算是刘明光施工的劲性骨架
          j=j+1
        output.show("slwg=" & slwg(i))
        Loop
        For Each tjrow As DataRow In tjrows  \'遍历统计表的每一行,以便填回统计的数据
          If tjrow("Gcbw")=skdt.name Then
            For r=0 To sksks.count-1
              If tjrow("Skzd") = sksc(r) Then
                tjrow("Clwg")=slwg(r)
                tjrow("Cgyg")=sgyg(r)
                tjrow("tongc30")=stongc30(r)
                tjrow("tongc40")=stongc40(r)
                tjrow("jinxing")=Sjinxing(r)
              End If
           Next
         End If           
        Next
       i=i+1
      Loop       
    End If
  Next
End If

--  作者:有点甜
--  发布时间:2017/9/8 13:40:00
--  

 请加入msgbox调试代码。弹出msgbox(i<= skprs.count-1)

 

 不满足条件,自然不会执行对应代码。