以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=30816)

--  作者:若水三千
--  发布时间:2013/4/4 11:47:00
--  求助
 Select Case e.DataCol.Name
    Case "分"
        
        If e.NewValue = 6 Then
            e.DataRow("评定等级") = "一"
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 51
            e.datarow("备注") =
        End If
        If e.NewValue = 5 Then
            e.DataRow("评定等级") = "二"
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 50
        End If
        If e.NewValue = 4 Then
            e.DataRow("评定等级") = "三"
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 49
        End If
        If e.NewValue = 3 Then
            e.DataRow("评定等级") = "四"
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 48
        End If
        If e.NewValue = 2 Then
            e.DataRow("评定等级") = "五"
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 47
        End If
        
        If e.NewValue = 1 Then
            e.DataRow("评定等级") = "六"
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 46
        End If
        If e.NewValue = 0 Then
            
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 45
            e.DataRow("评定等级") = "不评定"
        End If
狐狸爸爸 我想问 根据等级一共是6个等级  那么有6个集合 一等集合有 “做袖子、行棉、坐蔸”等  二等“案板、熨衣服”等  3 4 5 6等都是类似这样的集合
如何让上边的e.datarow("备注") = 自动在一等集合里循环赋值  就是例如一等集合 那么第一个一等的备注就是“做袖子” 第二个一等的就是“行棉”
以此类推
--  作者:若水三千
--  发布时间:2013/4/4 14:17:00
--  

那位大哥帮帮我啊


--  作者:程兴刚
--  发布时间:2013/4/4 14:32:00
--  

Dim s As String = "不评定|六|五|四|三|二|一
Select Case e.DataCol.Name
    Case "分"
        If e.NewValue > -1 And e.NewValue < 7
            Dim n As Integer = e.NewValue

            e.DataRow("评定等级") = s.split("|")(n)
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 45 +n
          \'  e.DataRow("备注") =   这里的结果需要您提供其他字段,请将表结构截图发上来
        End If
End Select

本段代码等同于您原来的代码,但效率远比原来的高,无需要判断!

[此贴子已经被作者于2013-4-4 14:32:00编辑过]

--  作者:若水三千
--  发布时间:2013/4/4 14:44:00
--  

程老师 没有其他字段 就你这个代码等同于我刚才那段代码

 

我现在 想让 分=6的行备注字段等于一个集合的循环  就是 例如这样的

 

姓名   思想  政治  等级  分 备注

张三  55   45       一    6   做袖子

王2    55  56       一   6    做口袋

王3    55   48      一       6    行棉

等等

 

就是分等于6的 循环一个集合里德活  这个集合自己设定 例如 我定义一个集合 里面有 做袖子 做口袋 做都 行棉  让我所有分等于6的人员的备注里 第一个写 做袖子 第二个做口袋 第三个 做都   等等  就是这样的 怎么弄呢 


--  作者:程兴刚
--  发布时间:2013/4/4 15:20:00
--  
Dim s As String = "不评定|六|五|四|三|二|一
Select Case e.DataCol.Name
    Case "分"
        If e.NewValue > -1 And e.NewValue < 7
            Dim n As Integer = e.NewValue
           
            e.DataRow("评定等级") = s.split("|")(n)
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 45 +n
            Dim drs As List(Of DataRow) = e.DataTable.Select("分 = " & e.NewValue,"_SortKey",-2)
            If drs.Count > 1
                Dim lc As String = drs(drs.Count-2)("备注")
                If lc = "做袖子"
                    e.DataRow("备注") = "做口袋"
                Else If lc = "做口袋"
                    e.DataRow("备注") = "行棉"
                Else
                    dr("备注") = "做袖子"
                End If
            End If
        Else
            dr("备注") = "做袖子"
        End If
    End If
End Select

--  作者:若水三千
--  发布时间:2013/4/4 15:40:00
--  
未声明变量DR 啊 DR 怎么声明的
--  作者:程兴刚
--  发布时间:2013/4/4 16:05:00
--  

这种问题您应该看出来才对,刚刚我为了用find,定义了dr,后来改select方法,去掉了dr的定义,后面个别引用忘记改过来,属于笔误:

 

Dim s As String = "不评定|六|五|四|三|二|一
Select Case e.DataCol.Name
    Case "分"
        If e.NewValue > -1 And e.NewValue < 7
            Dim n As Integer = e.NewValue
            e.DataRow("评定等级") = s.split("|")(n)
            e.DataRow("思想分") = 55
            e.DataRow("政治分") = 45 +n
            Dim drs As List(Of DataRow) = e.DataTable.Select("分 = " & e.NewValue,"_SortKey",-2)
            If drs.Count > 1
                Dim lc As String = drs(drs.Count-2)("备注")
                If lc = "做袖子"
                    e.DataRow("备注") = "做口袋"
                Else If lc = "做口袋"
                    e.DataRow("备注") = "行棉"
                Else
                    e.DataRow("备注") = "做袖子"
                End If
            End If
        Else
            e.DataRow("备注") = "做袖子"
        End If
    End If
End Select

 


--  作者:若水三千
--  发布时间:2013/4/4 16:05:00
--  
对不起啊 程老师 我比较笨哈
--  作者:若水三千
--  发布时间:2013/4/4 16:08:00
--  
还是不行啊 有错误啊
图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看

--  作者:程兴刚
--  发布时间:2013/4/4 18:10:00
--  

把e.DataTable换成您的表名称看看!