以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]代码能否再精减优化?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=98975)

--  作者:lisheng1971
--  发布时间:2017/4/10 16:13:00
--  [求助]代码能否再精减优化?
If e.DataRow("鉴定等级") = "技师" Then
    If e.DataRow("申报性质") = "正常申报" AndAlso e.DataRow("理论成绩") >=60 Then
        e.DataRow("实潜资格") = True
        e.DataRow("考核项目") = "两项"
    Else If e.DataRow("申报性质") = "正常申报" AndAlso e.DataRow("理论成绩") <60 Then
        e.DataRow("实潜资格") = False
        e.DataRow("考核项目") = "无"
        e.DataRow("补考性质") = "正常申报"
    Else If e.DataRow("申报性质") = "补考实操" Or e.DataRow("申报性质") = "补考潜能" Or e.DataRow("申报性质") = "补考两项" Or e.DataRow("申报性质") = "重新评审" Or e.DataRow("申报性质") = "破格评审" Then
        e.DataRow("实潜资格") = True
    Else If e.DataRow("申报性质") = "补考实操" Then
        e.DataRow("考核项目") = "实操"
    Else If e.DataRow("申报性质") = "补考潜能" Then
        e.DataRow("考核项目") = "潜能"
    Else If e.DataRow("申报性质") = "补考两项" Then
        e.DataRow("实潜资格") = True
        e.DataRow("考核项目") = "两项"
    Else If e.DataRow("申报性质") = "重新评审" Then
        e.DataRow("实潜资格") = True
        e.DataRow("考核项目") = "重评"
    Else If e.DataRow("申报性质") = "破格评审" Then
        e.DataRow("实潜资格") = True
        e.DataRow("考核项目") = "破格"
    End If
求版主指点,红色部分代码是否还能精减行数?
谢谢先!!!!!!

--  作者:andy123
--  发布时间:2017/4/10 16:18:00
--  
你这个用select case不是很好处理吗?
--  作者:有点色
--  发布时间:2017/4/10 16:25:00
--  

Dim ary1() As String = {"补考实操", "补考潜能", "补考两项"}
Dim ary2() As String = {"重新评审", "破格评审"}
If e.DataRow("申报性质") = "正常申报" AndAlso e.DataRow("理论成绩") >=60 Then
    e.DataRow("实潜资格") = True
    e.DataRow("考核项目") = "两项"
Else If e.DataRow("申报性质") = "正常申报" AndAlso e.DataRow("理论成绩") <60 Then
    e.DataRow("实潜资格") = False
    e.DataRow("考核项目") = "无"
    e.DataRow("补考性质") = "正常申报"
End If
Dim str As String = e.DataRow("申报性质")
Dim idx As Integer = array.IndexOf(ary1, str)
If idx >= 0 Then
    e.DataRow("实潜资格") = True
    e.DataRow("考核项目") = ary1(idx).Substring(2,2)
Else
    idx = array.IndexOf(ary2, str)
    If idx >= 0 Then
        e.DataRow("实潜资格") = True
        e.DataRow("考核项目") = ary2(idx).Substring(0,2)
    End If
End If


--  作者:有点蓝
--  发布时间:2017/4/10 16:28:00
--  
建议做成字典,进行查表赋值
--  作者:lisheng1971
--  发布时间:2017/4/11 8:38:00
--  
图片点击可在新窗口打开查看谢谢版主!水平有限,只会简单的语句,复杂点的不太会。