Foxtable(狐表)用户栏目专家坐堂 → 这样的代码还能优化吗


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

主题:这样的代码还能优化吗

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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/11/28 8:49:00 [显示全部帖子]

普通的:

 

Select Case e.DataCol.name
    Case "电雕在制明细"
        If e.DataRow.IsNull("电雕在制明细") Then
            e.DataRow("电雕在制支数")="0"
        Else
            e.DataRow("电雕在制支数") = e.newvalue.split(",").Length
        End If
    Case "机加在制明细"
        If e.DataRow.IsNull("机加在制明细") Then
            e.DataRow("机加在制支数")="0"
        Else
            e.DataRow("机加在制支数") = e.newvalue.split(",").Length
        End If
    Case "镀铜在制明细"
        If e.DataRow.IsNull("镀铜在制明细") Then
            e.DataRow("镀铜在制支数")="0"
        Else
            e.DataRow("镀铜在制支数") = e.newvalue.split(",").Length
        End If
    Case "车研在制明细"
        If e.DataRow.IsNull("车研在制明细") Then
            e.DataRow("车研在制支数")="0"
        Else
            e.DataRow("车研在制支数") = e.newvalue.split(",").Length
        End If
    Case "镀铬在制明细"
        If e.DataRow.IsNull("镀铬在制明细") Then
            e.DataRow("镀铬在制支数")="0"
        Else
            e.DataRow("镀铬在制支数") = e.newvalue.split(",").Length
        End If
End Select

 

邪门的:

 

If  e.DataCol.name.EndsWith("在制明细") Then
    Dim zh As String = e.DataCol.name
    zh = zh.SubString(0, zh.Length-2) & "支数"
    If e.DataRow.IsNull(e.DataCol.name) Then
        e.DataRow(zh) = 0
    Else
        e.DataRow(zh) = e.newvalue.split(",").Length
    End If
End If


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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/11/28 9:22:00 [显示全部帖子]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/11/28 10:56:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目54.table


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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/11/28 11:11:00 [显示全部帖子]

飞那个代码不严谨,要改一下:

 

Dim ArrColName1() As String = {"电雕在制明细","机加在制明细","镀铜在制明细","车研在制明细","镀铬在制明细"}
Dim ArrColName2() As String = {"电雕在制支数","机加在制支数","镀铜在制支数","车研在制支数","镀铬在制支数"}
Dim Index As Integer = Array.IndexOf(ArrColName1,e.DataCol.name)
If Index < 0 Then Return
If e.DataRow.IsNull(e.DataCol.name) Then
    e.DataRow(ArrColName2(Index)) = 0
Else
    e.DataRow(ArrColName2(Index)) = e.newvalue.split(",").Length
End If


 回到顶部