以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]计提折旧日期问题(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12592)
|
-- 作者:yyzlxc
-- 发布时间:2011/9/8 13:05:00
-- [求助]计提折旧日期问题(已解决)
设备折旧的计提方法,启用日期的次月1日开始计提,到停用日期的当月最后一天为止。用代码如何实现折旧开始和折旧结束的日期?请各位老师指教,谢谢
[此贴子已经被作者于2011-9-8 15:34:37编辑过]
|
-- 作者:紙上不談兵
-- 发布时间:2011/9/8 13:21:00
--
一看文件格式,唯有閃
|
-- 作者:yangming
-- 发布时间: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
-- 发布时间:2011/9/8 14:35:00
--
谢谢yangming老师的回复,折旧结束日期正确,但是折旧开始的日期均为第二年的第一天,要求是次月的第一天,还请yangming老师指教,非常感谢!!
|
-- 作者:yyzlxc
-- 发布时间: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

|
-- 作者:狐狸爸爸
-- 发布时间:2011/9/8 15:27:00
--
|
-- 作者:yyzlxc
-- 发布时间:2011/9/8 15:34:00
--
问题解决,完全达到预期效果,谢谢狐爸的代码,再次感谢!!
|
-- 作者:yangming
-- 发布时间: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
|