不会写代码,用了好多表达式列。
现在的问题是:资料录入完整后,“本年折旧”列不能自动更新或者数据错误,需要重置“折旧开始”列才行,代码需要如果修改?
不知道代码能否再简化下,看到有个折旧函数,但不知道怎么用。
SLN:指定在一段时间内资产的直线折旧
语法
SLN(cost, salvage, life)
这个可以不处理,因为数据太乱了,我自己看得都头晕了。
Select Case e.DataCol.name
Case "折旧开始","折旧结束","月折旧额"
If e.DataRow.IsNull("折旧开始") OrElse e.DataRow.IsNull("折旧结束") OrElse e.DataRow.IsNull("月折旧额") Then
e.DataRow("本年折旧") = Nothing
Else
Dim da3 As Date = e.DataRow("折旧开始")
Dim da4 As Date = Date.Today()
Dim da5 As Date = e.DataRow("折旧结束")
If da3.year < da4.year
If da4.year < da5.year
e.DataRow("本年折旧") = e.DataRow("月折旧额") * da4.month
Else If da4.year = da5.year
If da4.month > da5.month
e.DataRow("本年折旧") = e.DataRow("月折旧额") * da5.month
Else If da4.month <= da5.month
e.DataRow("本年折旧") = e.DataRow("月折旧额") * da4.month
End If
Else If da4.year > da5.year
e.DataRow("本年折旧") = 0
End If
Else If da3.year > da4.year
e.DataRow("本年折旧") = 0
Else If da3.year = da4.year
e.DataRow("本年折旧") = e.DataRow("月折旧额") * ((da4.month - da3.month) + 1 )
End If
End If
End Select
此主题相关图片如下:12121.jpg

[此贴子已经被作者于2015/7/19 21:49:54编辑过]