以下是引用大红袍在2016/2/18 17:23:00的发言:
如果是按钮,这样写
DataTables("故障报告2").StopRedraw
Dim drs As List(Of DataRow) = DataTables("故障报告2").Select("", "飞机号,系统章节,日期")
For i As Integer = 2 To drs.count - 1
Dim flag As Boolean = True
For j As Integer = 1 To 2
If not (drs(i-j)("飞机号") = drs(i)("飞机号") AndAlso drs(i-j)("系统章节") = drs(i)("系统章节") AndAlso drs(i-j)("日期") >= drs(i)("日期").AddDays(-30) AndAlso drs(i-j)("日期") < drs(i)("日期")) Then
flag = False
Exit For
End If
Next
If flag Then
drs(i)("预警") = "重复性故障"
Else
drs(i)("预警") = Nothing
End If
Next
DataTables("故障报告2").ResumeRedraw
红袍哥,我在此基础上改了一下,原来的意思是:出现三次就判断为重复性故障。现在改成,如果出现三次,那么这三次全部在预警列标注:重复性故障。我是这样改的,但是怎么也标不上
For i As Integer = 2 To drs.count - 1
Dim flag As Boolean = True ''定义布尔变量
For j As Integer = 1 To 2 ''因为出现三次算重复性(间歇性),故找两次
If not (drs(i-j)("飞机号") = drs(i)("飞机号") AndAlso drs(i-j)("系统章节") = drs(i)("系统章节") AndAlso drs(i-j)("日期") >= drs(i)("日期").AddDays(-recycle) AndAlso drs(i-j)("日期") < = drs(i)("日期")) Then ''三十天内同一飞机,同一章节出现的条件不满足
flag = False ''不是重复或间歇
Exit For
End If
Next
If flag Then
drs(i)("自动预警") = "重复性故障" ''如果是重复间歇,将前两个亦写为重复性故障.因为已经按照飞机号,章节号,日期进行排序
drs(i-1)("自动预警") = "重复性故障"
drs(i-2)("自动预警") = "重复性故障"
Else
drs(i)("自动预警") = Nothing
End If
Next
您有时间帮我看一下吧,谢谢!