上面的没优化,其实这样就可以了~~~~一样的问题~~~~老师看这个就行了
'一级保养判定程序
For Each dr As DataRow In DataTables("主窗口").Select("","机械分类")'列出所有装备代号
Dim y,m,d As Integer
Dim dt1 As Date = Date.Today
Dim dt2 As Date = dr("一级保养1")
DateYMD(dt1,dt2,y,m,d)
If dr("机械分类") ="蓄电池叉车" Or dr("机械分类") ="蓄电池牵引车" Then
If y >=1 And y<3 Or ( dr("工作时间") -Math.Max(dr("一级保养2"),Math.Max(dr("大修2"),dr("中修2")))>=350 And dr("工作时间")-Math.Max(dr("一级保养2") ,Math.Max(dr("大修2"),dr("中修2")))<1000 ) Then
'和上次一级保养时间比,间隔大于一年小于三年,或和一级保养工作时间,大修工作时间,中修工作时间中的最大值比,再次工作时间大于350h且小于1000h时提示需要一级保养
Dim vr As WinForm.ListViewRow = lvw4.Rows.Add()
vr.Text = dr("装备代号")
vr.Name = dr("装备代号") '将ListViewRow的Name属性设置为装备代号
vr.Font = New Font("微软雅黑",12)
If dr("机械分类") = "蓄电池叉车" Then
vr.ImageKey = "蓄电池叉车"
Else If dr("机械分类") = "蓄电池牵引车" Then
vr.ImageKey = "蓄电池牵引车"
Else
vr.ImageKey = "内燃机械"
End If
End If
Else
'此处开始设定内燃机械一级保养条件
If y >=1 And y<3 Or ( dr("工作时间") -Math.Max(dr("一级保养2"),Math.Max(dr("大修2"),dr("中修2")))>=150) And dr("工作时间")-Math.Max(dr("一级保养2"),Math.Max(dr("大修2"),dr("中修2")))<450 ) Then
Dim vr As WinForm.ListViewRow = lvw4.Rows.Add()
vr.Text = dr("装备代号")
vr.Name = dr("装备代号") '将ListViewRow的Name属性设置为装备代号
vr.Font = New Font("微软雅黑",12)
If dr("机械分类") = "蓄电池叉车" Then
vr.ImageKey = "蓄电池叉车"
Else If dr("机械分类") = "蓄电池牵引车" Then
vr.ImageKey = "蓄电池牵引车"
Else
vr.ImageKey = "内燃机械"
End If
End If
End If
Next