Foxtable(狐表)用户栏目专家坐堂 → [求助]计提折旧日期问题(已解决)


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

主题:[求助]计提折旧日期问题(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]计提折旧日期问题(已解决)  发帖心情 Post By:2011/9/8 13:05:00 [只看该作者]

设备折旧的计提方法,启用日期的次月1日开始计提,到停用日期的当月最后一天为止。用代码如何实现折旧开始和折旧结束的日期?请各位老师指教,谢谢

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目174.foxdb

[此贴子已经被作者于2011-9-8 15:34:37编辑过]

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


加好友 发短信
等级:幼狐 帖子:113 积分:731 威望:0 精华:1 注册:2011/8/16 14:13:00
  发帖心情 Post By:2011/9/8 13:21:00 [只看该作者]

一看文件格式,唯有閃

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/9/8 14:20:00 [只看该作者]

表属性的 DataColChanged 事件中

 

Dim Days As Integer
Days = Date.DaysInMonth(e.DataRow("停用日期").Year,e.DataRow("停用日期").Month)
Select Case e.DataCol.Name
    Case "启用日期"
        If e.DataRow("折旧开始").Year = Date.Today.Year

   If e.DataRow("折旧开始").Month <> 12

            e.DataRow("折旧开始")= e.DataRow("启用日期").Year & "-" & e.DataRow("启用日期").Month+1 & "- 01"
        Else
            e.DataRow("折旧开始")= e.DataRow("启用日期").Year +1 & "-01-01"
        End If
       
    Case "停用日期"
        e.DataRow("折旧结束")= e.DataRow("停用日期").Year & "-" & e.DataRow("停用日期").Month & "-" & Days
End Select

 

红字部分改成蓝字的就可以了

[此贴子已经被作者于2011-9-8 16:10:53编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/9/8 14:35:00 [只看该作者]

谢谢yangming老师的回复,折旧结束日期正确,但是折旧开始的日期均为第二年的第一天,要求是次月的第一天,还请yangming老师指教,非常感谢!!

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/9/8 15:11:00 [只看该作者]

 

将代码作如下修改后,前几行的日期显示正确,但是马上出现出错提示,请各位老师指教,谢谢!!

 

 

Dim Days As Integer
Days = Date.DaysInMonth(e.DataRow("停用日期").Year,e.DataRow("停用日期").Month)
Select Case e.DataCol.Name
    Case "启用日期"
        If e.DataRow("折旧开始").Month < 12
            e.DataRow("折旧开始")= e.DataRow("启用日期").Year & "-" & e.DataRow("启用日期").Month+1 & "- 01"
        Else
            e.DataRow("折旧开始")= e.DataRow("启用日期").Year +1 & "-01-01"
        End If
       
    Case "停用日期"
        e.DataRow("折旧结束")= e.DataRow("停用日期").Year & "-" & e.DataRow("停用日期").Month & "-" & Days
End Select

 

 

 


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

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/8 15:27:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目174.foxdb


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/9/8 15:34:00 [只看该作者]

问题解决,完全达到预期效果,谢谢狐爸的代码,再次感谢!!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/9/8 16:09:00 [只看该作者]

是我搞错了,正确的应该是下面的:

Dim Days As Integer
Days = Date.DaysInMonth(e.DataRow("停用日期").Year,e.DataRow("停用日期").Month)
Select Case e.DataCol.Name
    Case "启用日期"
        If e.DataRow("折旧开始").Month <> 12
            e.DataRow("折旧开始")= e.DataRow("启用日期").Year & "-" & e.DataRow("启用日期").Month+1 & "- 01"
        Else
            e.DataRow("折旧开始")= e.DataRow("启用日期").Year +1 & "-01-01"
        End If
       
    Case "停用日期"
        e.DataRow("折旧结束")= e.DataRow("停用日期").Year & "-" & e.DataRow("停用日期").Month & "-" & Days
End Select


 回到顶部