为了动态汇总数据,使用Fill方法生成"设备折旧2"临时表,并想通过按钮代码进行运算。
生成临时表的按钮代码如下:
Dim dtb As New DataTableBuilder("设备折旧2")
dtb.AddDef("名称", Gettype(String), 16)
dtb.AddDef("产权单位", Gettype(String), 16)
dtb.Build()
DataTables("设备折旧2").Fill("Select * From {设备折旧}", "SCGL", False)
MainTable= Tables("设备折旧2")
下面这段代码,原来是放在"设备折旧"表的DataColChanged事件中的,现在想将其合并到上面的按钮代码中,应该如何修改,请各位老师指教,谢谢!!
'产权单位
Select Case e.DataCol.Name
Case "去向"
If e.DataRow.IsNull("去向") And e.DataRow.IsNull("产权单位") Then
e.DataRow("停用日期")=Nothing
Else
If e.DataRow.IsNull("去向") Then
Dim mydate As Date = Forms("设备管理").Controls("DateTimePicker1").Text
Dim y As Integer = mydate.Year
Dim m As Integer = mydate.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim d As Date = New Date(y,m,Days)
e.DataRow("停用日期") = d
Dim dr As DataRow = DataTables("设备目录").Find("[设备编号] = '" & e.DataRow("设备编号") & "'")
If dr IsNot Nothing Then
dr("产权单位") = e.DataRow("产权单位")
End If
End If
End If
End Select
'折旧结束
Select Case e.DataCol.Name
Case "停用日期"
If e.DataRow.IsNull("停用日期") Then
e.DataRow("折旧结束") = Nothing
Else
Dim dt As Date = e.DataRow("停用日期")
e.DataRow("折旧结束") = new Date(dt.year,dt.month,Date.DaysInMonth(dt.year,dt.month))
End If
End Select
'折旧月数
Select Case e.DataCol.Name
Case "折旧开始","折旧结束"
If e.DataRow.IsNull("折旧开始") And e.DataRow.IsNull("折旧结束") Then
e.DataRow("折旧月数")=Nothing
Else
Dim d1 As Date = e.DataRow("折旧开始")
Dim d2 As Date = e.DataRow("折旧结束")
If d1>d2
e.DataRow("折旧月数") = 0
Else
e.DataRow("折旧月数") = (d2.year - d1.year) * 12 + (d2.month - d1.month) + 1
End If
End If
End Select
[此贴子已经被作者于2011-9-26 13:04:36编辑过]