Foxtable(狐表)用户栏目专家坐堂 → [求助]


  共有2399人关注过本帖树形打印复制链接

主题:[求助]

帅哥哟,离线,有人找我吗?
wuchangke
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:322 威望:0 精华:0 注册:2017/5/21 17:59:00
[求助]  发帖心情 Post By:2017/9/13 10:43:00 [只看该作者]

 

If skdc.name = "Skzd" Then                                                      '如果改变的列是 

  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                                             '如果当前遍历的表

           代码

         Elseif 条件

            i=i+1

         End if

         I=i+1

     Loop

  Next

End if

上面这段代码,为什么For Each  .....Next语句没有遍历所有的表,output.show("skdt.name=" & skdt.name)输出的值只是一个?


 回到顶部
帅哥哟,离线,有人找我吗?
wuchangke
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:322 威望:0 精华:0 注册:2017/5/21 17:59:00
  发帖心情 Post By:2017/9/13 10:48:00 [只看该作者]

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

麻烦看一下


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/13 10:53:00 [只看该作者]

不满足条件呗,弹出下面的值

 

msgbox(i & "    " & sksks.count-1)


 回到顶部
帅哥哟,离线,有人找我吗?
wuchangke
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:322 威望:0 精华:0 注册:2017/5/21 17:59:00
  发帖心情 Post By:2017/9/13 10:56:00 [只看该作者]

为什么呢,我想不出

 回到顶部
帅哥哟,离线,有人找我吗?
wuchangke
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:322 威望:0 精华:0 注册:2017/5/21 17:59:00
  发帖心情 Post By:2017/9/13 10:57:00 [只看该作者]

For Each .....next 跳出的条件是什么?

 回到顶部
帅哥哟,离线,有人找我吗?
wuchangke
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:322 威望:0 精华:0 注册:2017/5/21 17:59:00
  发帖心情 Post By:2017/9/13 10:59:00 [只看该作者]

i只是用来控制Do while ... Loop 循环的呀

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/13 10:59:00 [只看该作者]

以下是引用wuchangke在2017/9/13 10:56:00的发言:
为什么呢,我想不出

 

你不满足这个条件

 

Do While i<=sksks.count-1

 

那自然不会执行下面的代码啊


 回到顶部
帅哥哟,离线,有人找我吗?
wuchangke
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:322 威望:0 精华:0 注册:2017/5/21 17:59:00
  发帖心情 Post By:2017/9/13 11:08:00 [只看该作者]

这个条件符合就该执行下面代码吧?

 回到顶部
帅哥哟,离线,有人找我吗?
wuchangke
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:322 威望:0 精华:0 注册:2017/5/21 17:59:00
  发帖心情 Post By:2017/9/13 11:09:00 [只看该作者]

不是只有这个条件不符才不执行吧

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/13 11:13:00 [只看该作者]

以下是引用wuchangke在2017/9/13 11:09:00的发言:
不是只有这个条件不符才不执行吧

 

加上下面代码弹出值看看

 

msgbox(i & "    " & sksks.count-1)


 回到顶部
总数 11 1 2 下一页