Foxtable(狐表)用户栏目专家坐堂 → 代码优化求助


  共有2045人关注过本帖树形打印复制链接

主题:代码优化求助

帅哥哟,离线,有人找我吗?
lisheng1971
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
代码优化求助  发帖心情 Post By:2018/10/19 9:46:00 [只看该作者]

Select Case e.DataCol.Name
    Case "申报性质","申报鉴定工种","资格审核","理论考否","考试性质"
        If e.DataRow("鉴定等级") = "高级工" Then
            If e.DataRow("申报性质") = "正常申报" Or e.DataRow("申报性质") = "补考理论" Then
                If e.DataRow("资格审核") = True Then
                    e.DataRow("理论考否") = "要考理论"
                    Dim fdr As DataRow = DataTables("机考工种表").Find("鉴定等级三 = '" & e.DataRow("鉴定等级") & "' And 机考工种 = '" & e.DataRow("申报鉴定工种") & "'")
                    If fdr IsNot Nothing Then
                        e.DataRow("考试性质") = "上机考试"
                    Else
                        e.DataRow("考试性质") = "纸质考试"
                    End If
                Else
                    e.DataRow("理论考否") = "没有资格"
                    e.DataRow("考试性质") = "不排考试"
                End If
            Else
                e.DataRow("理论考否") = "不考理论"
                e.DataRow("考试性质") = e.DataRow("申报性质")
            End If
        End If
End Select
Select Case e.DataCol.Name
    Case "申报性质","申报鉴定工种","资格审核","理论考否","考试性质"
        If e.DataRow("鉴定等级") = "中级工" Then
            If e.DataRow("申报性质") = "正常申报" Or e.DataRow("申报性质") = "补考理论" Then
                If e.DataRow("资格审核") = True Then
                    e.DataRow("理论考否") = "要考理论"
                    Dim fdr As DataRow = DataTables("机考工种表").Find("鉴定等级四 = '" & e.DataRow("鉴定等级") & "' And 机考工种 = '" & e.DataRow("申报鉴定工种") & "'")
                    If fdr IsNot Nothing Then
                        e.DataRow("考试性质") = "上机考试"
                    Else
                        e.DataRow("考试性质") = "纸质考试"
                    End If
                Else
                    e.DataRow("理论考否") = "没有资格"
                    e.DataRow("考试性质") = "不排考试"
                End If
            Else
                e.DataRow("理论考否") = "不考理论"
                e.DataRow("考试性质") = e.DataRow("申报性质")
            End If
        End If
End Select

 

以上两段代码还能够再优化精减吗?谢谢先!



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/19 9:52:00 [只看该作者]

Select Case e.DataCol.Name
    Case "申报性质","申报鉴定工种","资格审核","理论考否","考试性质"
        Dim dj As String = ""
        If e.DataRow("鉴定等级") = "高级工" Then
            dj = "鉴定等级三"
        ElseIf e.DataRow("鉴定等级") = "中级工" Then
            dj = "鉴定等级四"
        End If
        If dj > "" Then
            If e.DataRow("申报性质") = "正常申报" Or e.DataRow("申报性质") = "补考理论" Then
                If e.DataRow("资格审核") = True Then
                    e.DataRow("理论考否") = "要考理论"
                    Dim fdr As DataRow = DataTables("机考工种表").Find(dj & " = '" & e.DataRow("鉴定等级") & "' And 机考工种 = '" & e.DataRow("申报鉴定工种") & "'")
                    If fdr IsNot Nothing Then
                        e.DataRow("考试性质") = "上机考试"
                    Else
                        e.DataRow("考试性质") = "纸质考试"
                    End If
                Else
                    e.DataRow("理论考否") = "没有资格"
                    e.DataRow("考试性质") = "不排考试"
                End If
            Else
                e.DataRow("理论考否") = "不考理论"
                e.DataRow("考试性质") = e.DataRow("申报性质")
            End If
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
lisheng1971
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/10/19 10:44:00 [只看该作者]

谢谢!下面两段代码是否也可以精减整合在一段里面?

Select Case e.DataCol.Name
    Case "鉴定等级","申报性质","申报鉴定工种","资格审核","理论考否","考试性质"
        If e.DataRow("鉴定等级") = "技师" Then
            If e.DataRow("申报性质") = "正常申报" Then
                If e.DataRow("资格审核") = True Then
                    e.DataRow("理论考否") = "要考理论"
                    Dim fdr As DataRow = DataTables("机考工种表").Find("鉴定等级二 = '" & e.DataRow("鉴定等级") & "' And 机考工种 = '" &  e.DataRow("申报鉴定工种") & "'")
                    If fdr IsNot Nothing Then
                        e.DataRow("考试性质") = "上机考试"
                    Else
                        e.DataRow("考试性质") = "内网机考"
                    End If
                Else
                    e.DataRow("理论考否") = "没有资格"
                    e.DataRow("考试性质") = "不排考试"
                End If
            Else
                e.DataRow("考试性质") = e.DataRow("申报性质")
            End If
        End If
End Select
Select Case e.DataCol.Name
    Case "鉴定等级","申报性质","申报鉴定工种","资格审核","理论考否","考试性质"
        Dim dj As String = ""
        If e.DataRow("鉴定等级") = "高级工" Then
            dj = "鉴定等级三"
        ElseIf e.DataRow("鉴定等级") = "中级工" Then
            dj = "鉴定等级四"
        End If
        If dj > "" Then
            If e.DataRow("申报性质") = "正常申报" Or e.DataRow("申报性质") = "补考理论" Then
                If e.DataRow("资格审核") = True Then
                    e.DataRow("理论考否") = "要考理论"
                    Dim fdr As DataRow = DataTables("机考工种表").Find(dj & " = '" & e.DataRow("鉴定等级") & "' And 机考工种 = '" & e.DataRow("申报鉴定工种") & "'")
                    If fdr IsNot Nothing Then
                        e.DataRow("考试性质") = "上机考试"
                    Else
                        e.DataRow("考试性质") = "纸质考试"
                    End If
                Else
                    e.DataRow("理论考否") = "没有资格"
                    e.DataRow("考试性质") = "不排考试"
                End If
            Else
                e.DataRow("理论考否") = "不考理论"
                e.DataRow("考试性质") = e.DataRow("申报性质")
            End If
        End If
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
lisheng1971
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/10/19 10:47:00 [只看该作者]

“纸质考试”可以统一换成“内网机考”

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/19 11:14:00 [只看该作者]

改法一样,参考2楼自己改

 回到顶部