Foxtable(狐表)用户栏目专家坐堂 → [求助]新人诚心求教问题


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

主题:[求助]新人诚心求教问题

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/24 14:00:00 [显示全部帖子]

 其实,更符合逻辑的代码应该这样写。

Dim c As Double = 0
Dim s As  TimeSpan
For Each h As DataRow In DataTables("业务").DataRows
    Dim drs As List(Of DataRow) = DataTables("租息调整表").Select("调整止日 > #" & h("起始日期") & "# And 调整起日 <= #" & h("到期日期") & "#")
    Select Case drs.Count
        Case 0   '没有匹配
            msgbox("请设置租息")
        Case 1   '在一个区间里
            s = h("到期日期") - h("起始日期")
            c = c + s.TotalDays * drs(0)("日租金")
        Case Else   '在多个区间里
            s = drs(0)("调整止日") - h("起始日期")   '租期的第一个区间
            c = c + s.TotalDays * drs(0)("日租金")

            For i As Integer = 1 To drs.Count - 2    '正常按区间满收
                s = drs(i)("调整止日") - drs(i)("调整起日")
                c = c + s.TotalDays * drs(i)("日租金")
            Next

            s = h("到期日期") - drs(drs.Count-1)("调整起日")   '租期的最后一个区间
            c = c + s.TotalDays * drs(drs.Count-1)("日租金")
    End Select

    h("金额") = c
Next
[此贴子已经被作者于2012-10-24 14:00:52编辑过]

 回到顶部