Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
一段代码,要求计算同一设备编号的累计折旧月数,如果累计折旧月数大于折旧年限月数,当月折旧显示为0。
现在问题是,累计折旧月数 f 显示为0,如何获取正确的累计月数,请各位老师指教,谢谢!!
'当月折旧
Select Case e.DataCol.Name
Case "折旧开始"
Dim dr As DataRow = e.DataRow
If e.DataRow.IsNull("折旧开始") And e.DataRow.IsNull("折旧结束") Then
e.DataRow("当月折旧")=Nothing
Else
Dim mydate As Date = Date.Today()
Dim y As Integer = mydate.Year
Dim m As Integer = mydate.Month
Dim a As Date = New Date(y,m,1) '月初
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim b As Date = New Date(y,m,Days) '月底
Dim c As Date = e.DataRow("折旧开始")
Dim d As Date = e.DataRow("折旧结束")
Dim f As Byte = DataTables("设备折旧").Compute("Sum(折旧月数)","[设备编号] = '" & e.NewValue & "'")
Dim g As Byte = e.DataRow("折旧年限")
MessageBox.Show("累计折旧月数: " & f)
If c > d OrElse b < c OrElse a > d OrElse f > g*12 Then
e.DataRow("当月折旧")= 0
Else
e.DataRow("当月折旧") = e.DataRow("月折旧费")
End If
End If
End Select
下载信息 [文件大小: 下载次数: ] | |
![]() |
应该是:
Dim f As Byte = DataTables("设备折旧").Compute("Sum(折旧月数)","[设备编号] = '" & e.DataRow("设备编号") & "'")
你代码中的e.NewValue值是“折旧开始”的值。