Foxtable(狐表)用户栏目专家坐堂 → [求助]代码能否再精减优化?


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

主题:[求助]代码能否再精减优化?

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


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
[求助]代码能否再精减优化?  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:322 积分:2692 威望:0 精华:0 注册:2014/6/24 17:29:00
  发帖心情 Post By:2017/4/10 16:18:00 [只看该作者]

你这个用select case不是很好处理吗?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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


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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/10 16:28:00 [只看该作者]

建议做成字典,进行查表赋值

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


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

图片点击可在新窗口打开查看谢谢版主!水平有限,只会简单的语句,复杂点的不太会。

 回到顶部