Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
yyzlxc 发表于:2011/9/8 13:05:00

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

 

 

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

[此贴子已经被作者于2011-9-8 15:34:37编辑过]
2楼
紙上不談兵 发表于:2011/9/8 13:21:00
一看文件格式,唯有閃
3楼
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编辑过]
4楼
yyzlxc 发表于:2011/9/8 14:35:00
谢谢yangming老师的回复,折旧结束日期正确,但是折旧开始的日期均为第二年的第一天,要求是次月的第一天,还请yangming老师指教,非常感谢!!
5楼
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
图片点击可在新窗口打开查看
6楼
狐狸爸爸 发表于:2011/9/8 15:27:00

 

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

7楼
yyzlxc 发表于:2011/9/8 15:34:00
问题解决,完全达到预期效果,谢谢狐爸的代码,再次感谢!!
8楼
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

共8 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02490 s, 4 queries.