Foxtable(狐表)用户栏目专家坐堂 → 固定资产累计折旧


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

主题:固定资产累计折旧

美女呀,离线,留言给我吧!
nuoyan89
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
固定资产累计折旧  发帖心情 Post By:2021/2/19 20:31:00 [只看该作者]

老师,以下我想增加个条件,就是第一年开始折旧时yz= e.DataRow("设备原值") * (1-0.85),从第二年开始用"(e.DataRow("设备原值")-之前每年折旧的累计值)*满足条件的折旧率(满足条件的折旧率如红色字体)例如蓝色字体样的。

例:

   一台设备原值:75600元,第一年折旧时年折旧额= 756000*(1-0.85)=113475元,第二年的年折旧额= (756000-113475)*(1-0.85)= 96453.75元,第三年的年折旧额 = (756000-113475-96453.75)*(1-0.85)= 81985.6875元,第四年的年折旧额= (756000-113475-96453.75-81985.6875)*(1-0.9)= 46408.55625元,以此类推

Dim nx As Integer  = (Date.Today.Year - e.DataRow("投入使用日期").Year)
Dim yz = e.DataRow("设备原值")
For i As Integer = 0 To nx
    If i >= 0 And i < 4 Then
        yz =  yz * (1-0.85)
    ElseIf i >= 4 And i <= 7 Then
        yz = yz * (1-0.9)
    Else
        yz = yz * (1-0.95)
    End If
Next
e.DataRow("年折旧额") = yz


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105957 积分:538860 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/20 9:23:00 [只看该作者]

Dim nx As Integer  = (Date.Today.Year - e.DataRow("投入使用日期").Year)
Dim i As Integer = 1
Dim sum As Double = 0
Dim yz As Double = e.DataRow("设备原值")
Dim k As Double 
Do While i <= nx
    If i < 4 Then
        k =  (yz - sum) * (1.0-0.85)
    ElseIf i >= 4 And i <= 7 Then
        k =  (yz - sum) * (1.0-0.9)
    Else
        k =  (yz - sum) * (1.0-0.95)
    End If
    sum += k
    i += 1
Loop

e.DataRow("年折旧额") = k


 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2021/2/20 9:37:00 [只看该作者]

问题完美解决,非常谢谢!

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2021/2/20 11:07:00 [只看该作者]

老师,这个第一年的折旧值不能显示。如图1

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105957 积分:538860 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/20 11:15:00 [只看该作者]

Dim nx As Integer  = (Date.Today.Year - e.DataRow("投入使用日期").Year)
msgbox(nx)显示什么

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2021/2/20 11:43:00 [只看该作者]

是的,也是相当于第一年


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105957 积分:538860 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/20 11:48:00 [只看该作者]

如果0是第一年

Dim i As Integer = 0

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2021/2/20 13:23:00 [只看该作者]

真笨,咋就没有想到这个呢

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2021/2/21 21:11:00 [只看该作者]

老师,目前有如图1的问题,请帮忙看看,谢谢!问题描述:原值:756000元,投入使用日期 :2018-06-28  目前年限:2.7个月,目前应该折旧额是:106382.81元,但系统里代码折旧是:79787.11元,原因是是这个代码中的1改成了0(代码:Dim i As Integer = 0),如果不改成0的话,小于1年的又折旧不出来,改成0后会多折1年的,如果要达到目前的折旧额106382.81这个金额又能让小于1年的正常折旧出来应该怎么改呢?谢谢

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105957 积分:538860 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/21 21:32:00 [只看该作者]

0单独处理

Dim nx As Integer  = (Date.Today.Year - e.DataRow("投入使用日期").Year)
if nx = 0 then
e.DataRow("年折旧额") = e.DataRow("设备原值") * (1.0-0.85)
else
Dim i As Integer = 1
Dim sum As Double = 0
Dim yz As Double = e.DataRow("设备原值")
Dim k As Double 
Do While i <= nx
    If i < 4 Then
        k =  (yz - sum) * (1.0-0.85)
    ElseIf i >= 4 And i <= 7 Then
        k =  (yz - sum) * (1.0-0.9)
    Else
        k =  (yz - sum) * (1.0-0.95)
    End If
    sum += k
    i += 1
Loop

e.DataRow("年折旧额") = k
endif

 回到顶部
总数 19 1 2 下一页