需求:
如果 计划数>原数
如果 计划数不为空 And 完成数不为空 And 完成数>计划数
完成率=dr1("完成数") / dr1("计划数")*1.5
如果 计划数不为空 And 完成数不为空 And 完成数=计划数
完成率=dr1("完成数") / dr1("计划数")*1.3
如果 计划数不为空 And 完成数不为空 And 完成数<计划数 And 完成数<原数
完成率=dr1("完成数") / dr1("计划数")*1.05
如果 计划数不为空 And 完成数=0
完成率=0
如果 计划数<原数
如果 原数不为空 And 完成数不为空 And 完成数>原数
完成率=dr1("完成数") / dr1("原数")*1.2
如果 原数不为空 And 完成数不为空 And 完成数=原数
完成率=dr1("完成数") / dr1("原数")*1.0
如果 原数不为空 And 完成数=0
完成率=0
如果 原数不为空 And 完成数<原数 And (完成数/原数)<0.6
完成率=0
否则
完成率=dr1("完成数") / dr1("原数")*0.5
下面代码,如何改为实现上面的需求
Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
Case "完成数", "计划数", "原数"
If dr1("完成数") Is Nothing OrElse dr1("计划数") Is Nothing OrElse dr1("原数") Is Nothing Then
dr1("完成率") = Nothing
Else
If dr1("计划数") > dr1("原数") And dr1("计划数") > 0 Then
dr1("完成率") = dr1("完成数") / dr1("计划数")
Else
dr1("完成率") = dr1("计划数") / dr1("完成率")
End If
If dr1("计划数") < dr1("原数") And dr1("原数") > 0Then
dr1("完成率") = dr1("完成数") / dr1("原数")
Else
dr1("完成率") = dr1("原数") / dr1("完成数")
End If
End If
End Select