以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  等级划分  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=33457)

--  作者:wqb1102
--  发布时间:2013/5/18 16:31:00
--  等级划分
在CaseStudy目录下的文件: 等级划分.Table中,是通过计算分数占比来确定等级,由按钮来实行;如果想设置:
分数≥90,为 A;80-90 为B,70-80 为C, 60-70 为D, 60以下 为E,当分数列变动时,等级列自动变更,
要如何设置。
谢谢!


--  作者:XYT
--  发布时间:2013/5/18 16:44:00
--  

1.这个更简单啊,比较分数大于等于90就是A了,大于80小于90就是B。

2.那就在DataColChanged里写


--  作者:wqb1102
--  发布时间:2013/5/18 16:51:00
--  
多谢
--  作者:wqb1102
--  发布时间:2013/5/18 17:13:00
--  
如何 写?
--  作者:狐狸爸爸
--  发布时间:2013/5/18 17:34:00
--  

设置DataColChanged事件代码:

 

Select Case e.DataCol.Name

    Case “分数"

        Dim v As Double = e.Datarow("分数")

        if v < 60 Then

              e.datarow("等级") = “E”

        Elseif v < 70 Then

              e.datarow("等级") = "D”

        Elseif v < 80 Then

              e.datarow("等级") = "C”

        Elseif v < 90 Then

              e.datarow("等级") = "B”

        Else

              e.datarow("等级") = "A”

        End If

End Select


--  作者:wqb1102
--  发布时间:2013/5/18 20:29:00
--  
多谢
--  作者:wqb1102
--  发布时间:2013/5/20 10:11:00
--  
狐爸,如何判断空值呢?即:当分数为空时,等级为空。
--  作者:Bin
--  发布时间:2013/5/20 10:14:00
--  
加一个最外层判断 IF e.Datarow.IsNULl("分数")  then 

Select Case e.DataCol.Name

    Case “分数"

       IF e.Datarow.IsNULl("分数")  then

        e.datarow("等级")=""

       else

        Dim v As Double = e.Datarow("分数")

        if v < 60 Then

              e.datarow("等级") = “E”

        Elseif v < 70 Then

              e.datarow("等级") = "D”

        Elseif v < 80 Then

              e.datarow("等级") = "C”

        Elseif v < 90 Then

              e.datarow("等级") = "B”

        Else

              e.datarow("等级") = "A”

        End If

        end if

End Select

[此贴子已经被作者于2013-5-20 10:16:31编辑过]

--  作者:wqb1102
--  发布时间:2013/5/20 10:36:00
--  
原来是加在外层,试了好久没对,多谢了。