以文本方式查看主题
- 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换成您的表名称看看!
|