以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]根据年度月份分解财务费用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=107878)

--  作者:vindesk
--  发布时间:2017/10/11 22:06:00
--  [求助]根据年度月份分解财务费用
求助专家:
已知合同起始日期、截止日期和总费用。
如何自动将总费用分解到每个年度
例:合同起始日期2015.05.01,截止日期2017.04.30。总费用20万元。
自动得出2015,2016,2017年的每年年度费用。
十分感谢啊


--  作者:有点甜
--  发布时间:2017/10/11 22:27:00
--  
 上传具体实例说明。
--  作者:vindesk
--  发布时间:2017/10/12 0:09:00
--  
目前只能用DateYMD函数取出两个日期之间的月数,得出每个月费用。
dim y,m,d as integer
dim mu as integer  ’---计算月数
dim mm as Single     ’每月的费用
DateYMD([起始日期],[截止日期],y,m,d)
mu = 12*y + m
mm = [总费用]/mu

一般合同都是年有若干月,中间几个月都是整年(12*mm即可),最后一年是若干的月。
如果用帮助里的substring函数取出第一年的年数,却是一个字符型,如何进行整数运算呢?
终止希望得到一个TABLE,
自动生成从最早开始的年度到最晚结束的项目年度,每年的费用报表。





--  作者:有点甜
--  发布时间:2017/10/12 9:35:00
--  

Dim d1 As Date = "2015-05-01"
Dim d2 As Date = "2017-04-30"
Dim cost As Double = 200000
Dim y,m,d As Integer
Dim mu As Integer  \'---计算月数
Dim mm As Single     \'每月的费用
DateYMD(d1,d2,y,m,d)
mu = 12*y + m + 1
mm = cost/mu

Dim count As Integer = 1
Dim sum As Double = 0
For i As Integer = 1 To mu
    Dim dd As Date = d1.AddMonths(i)
    If format(dd,"yyyyMM") = format(d2,"yyyyMM")
        output.show(dd & " " & cost-sum)
    ElseIf dd.Month = 12 Then
        output.show(dd & " " & mm * count)
        sum += mm*count
        count = 1
    Else
        count += 1
    End If
Next