Foxtable(狐表)用户栏目专家坐堂 → 循环语句的学习


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

主题:循环语句的学习

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/27 9:57:00 [显示全部帖子]

2楼的代码应该这样用,尽量不要使用current,有时候不经意的其它事件可能会导致选择的行变化,current行就不是原来的行了

dim r as row
FOR each r as row in tables("表A").ROWS
r = tables("表B").Addnew
r("工程合同编号")=r("工程合同编号")
r("工程类别")=r("工程类别")
NEXT

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/28 9:55:00 [显示全部帖子]

请详细描述一下计算规则,以 HT0001举例说明一下,B表应该存储什么结果?

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/28 16:39:00 [显示全部帖子]

Dim dt As DataTable = DataTables("资金预算表")
dt.StopRedraw
Dim d As Date = Date.Today
Dim nr As DataRow
For Each dr As DataRow In DataTables("合同明细表").DataRows
    Dim sd As Date = dr("履约开始日期")
    Dim i As Integer = 1
    Do While i<=dr("合同期")
        sd = sd.AddYears(1)
        If sd >= d
            nr = dt.AddNew
            nr("工程合同编号") = dr("工程合同编号")
            nr("应结工程款日期") = sd
            nr("应结金额") = dr("合同金额") * dr("第" & i & "年")
        End If
        i += 1
    Loop
Next
dt.ResumeRedraw

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/4 10:30:00 [显示全部帖子]

手工计算举例说明一下,上面项目里工程主表里的5个工程编号的数据,计算后资金预算表需要的结果是怎么样的?

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/5 12:01:00 [显示全部帖子]

Dim dt As Table = Tables("资金预算表")
dt.StopRedraw
Dim d As Date = Date.Today
Dim nr As Row
For Each dr As DataRow In DataTables("工程主表").DataRows
    Dim sd As Date = dr("履约开始日期")
    Dim ed As Date = sd.AddYears(5)
    Dim i As Integer = 5
    Do While ed >= d
        nr = dt.InsertNew
        nr("工程编号") = dr("工程编号")
        nr("应结工程款日期") = ed
        nr("需付资金") = dr("镇级应付价") * dr("第" & i & "年")
        i -= 1
        ed = ed.AddYears(-1)
    Loop
    Dim dr2 As DataRow = DataTables("支付明细表").Find("工程编号='" & dr("工程编号") & "' and 余额 < 0","支付日期 desc")
    If dr2 IsNot Nothing Then
        nr = dt.InsertNew
        nr("工程编号") = dr("工程编号")
        nr("应结工程款日期") = ed.AddYears(1)
        nr("需付资金") = dr2("余额") * -1
    End If
Next
dt.ResumeRedraw


 回到顶部