以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  遍历数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179790)

--  作者:shqpldczj
--  发布时间:2022/9/8 22:44:00
--  遍历数据
A表是主合同,B表是开票明细互相关联是合同编号,我现在想重算所有开票明细的进度值
For Each dr3 As DataRow In DataTables("开票明细").DataRows
    Dim r As DataRow
    r = DataTables("合同主表").Find("[合同编号] = \'" & dr3("合同编号") & "\'")
    Dim a As Integer = r("审定金额")
    dr3("进度") = dr3("金额") / a
Next
DataTables("开票明细").save

我用这些代码怎么只能计算当前一条记录而不是全部开票明细记录


--  作者:有点蓝
--  发布时间:2022/9/8 23:08:00
--  
Dim r As Row = Tables("开piao明细").current
If r IsNot Nothing Then
    Dim dr As DataRow
    dr = DataTables("合同主表").Find("[合同编号] = \'" & r("合同编号") & "\'")
    If dr IsNot Nothing AndAlso dr("审定金额") <> 0 Then
        r("进度") = r("金额") / dr("审定金额")
    End If
End If

--  作者:shqpldczj
--  发布时间:2022/9/9 0:09:00
--  不对吧
怎么会用当前行?我是要把开票明细的所有行都要计算进度
--  作者:shqpldczj
--  发布时间:2022/9/9 0:12:00
--  测试过了是不对的
应该是遍历所有开票明细的行
--  作者:有点蓝
--  发布时间:2022/9/9 8:47:00
--  
哦,看错了,以为只要计算当前一条记录。

1楼就是遍历的用法了,如果有问题像2楼那样加上必要的判断:If dr IsNot Nothing AndAlso dr("审定金额") <> 0 Then