Foxtable(狐表)用户栏目专家坐堂 → 多列根据条件自动计算,求教DON老师


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

主题:多列根据条件自动计算,求教DON老师

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/6/5 22:41:00 [显示全部帖子]

1.本月摊销 暂且理解为:合同金额÷月数(不明3,4行的-200及200是如何来的?);

2.不明期初摊销 的来历?

3.什么是冲减或补记?专业术语不是人人能理解的!

4.中止合同 ==> 表中如何体现是否中止?

5.本人不大喜欢高调,所以标题最好别专门指明我,这样压力大啊,有问题大家有空有能力都会帮助的.

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/6/6 11:41:00 [显示全部帖子]

试试,按钮代码:
Dim n1,n2,y1,M1 As Double
Dim drs As List(of DataRow)
Dim dt1 As DataTable = DataTables("摊销")
Dim ym As String

ym =Forms("窗口1").Controls("ComboBox1").value
y1 =ym.Substring(0,4)
m1 =ym.Substring(5)

dt1.StopRedraw
drs =dt1.Select("项目 > ''" )
For Each dr As DataRow In drs
    n1 = (y1-dr("进场日期").year)*12 +m1-dr("进场日期").Month
    dr("期初摊销") = dr("合同金额")*n1/dr("月数")
    Select Case dr("合同状态")
        Case "中止合同"
            dr("本月摊销") =0
        Case "提前完工"
            dr("本月摊销") =dr("合同金额") -dr("期初摊销")
        Case "正常摊销"
            n2 = dr("合同金额")/dr("月数")
            If dr.Isnull("确认日期") OrElse dr("进场日期") =dr("确认日期") Then
                dr("本月摊销") = n2
            ElseIf dr("进场日期") < dr("确认日期") Then
                dr("本月摊销") = n2 -dr("期初摊销")
            ElseIf dr("进场日期") > dr("确认日期") Then
                dr("本月摊销") = n2*2        
            End If
    End Select
    dr("累计摊销") = dr("本月摊销") + dr("期初摊销")
Next
dt1.ResumeRedraw

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/6/6 12:59:00 [显示全部帖子]

完善一下:
Dim n1,n2,y1,M1 As Double
Dim dt1 As DataTable = DataTables("摊销")
Dim drs As List(of DataRow) = dt1.Select("项目 > ''")
Dim ym As String = Forms("窗口1").Controls("ComboBox1").value

y1 =ym.Substring(0,4)
M1 =ym.Substring(5)
dt1.StopRedraw

For Each dr As DataRow In drs
    n1 = (y1-dr("进场日期").year)*12 +M1-dr("进场日期").Month
    dr("期初摊销") = dr("合同金额")*n1/dr("月数")
    Select Case dr("合同状态")
        Case "中止合同"
            dr("本月摊销") =0
        Case "提前完工"
            dr("本月摊销") = dr("合同金额") -dr("期初摊销")
        Case "正常摊销"
            n1 = dr("合同金额")/dr("月数")
            If dr.Isnull("确认日期") OrElse dr("进场日期")= dr("确认日期") Then
                dr("本月摊销") = n1
            ElseIf dr("进场日期") < dr("确认日期") Then
                dr("本月摊销") = n1 -dr("期初摊销")
            Else
                n2 = DateDiff("m",dr("确认日期"), dr("进场日期"))
                dr("本月摊销") = n1*(n2+1)
            End If
    End Select
    dr("累计摊销") = dr("本月摊销") + dr("期初摊销")
Next
dt1.ResumeRedraw

 回到顶部