Foxtable(狐表)用户栏目专家坐堂 → [求助]下列一段代码,逻辑有什么问题吗,总感到有不对的地方,就是找不到,请专家看看


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

主题:[求助]下列一段代码,逻辑有什么问题吗,总感到有不对的地方,就是找不到,请专家看看

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8846 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]下列一段代码,逻辑有什么问题吗,总感到有不对的地方,就是找不到,请专家看看  发帖心情 Post By:2022/8/4 7:41:00 [只看该作者]

Select Case e.DataCol.name
        Case "形不成竞争","面试排名","职位数","备注","进入体检比例","面试加权成绩" 
            Dim Val As Double = e.DataRow("职位数")*e.DataRow("进入体检比例")
            Dim Lng As Long =  Format(Val,"0")
            Dim Val1 As Double = e.DataRow("面试加权成绩")
            Dim Val2 As Double = e.DataRow("备注")
            Dim Lng1 As Long =  Format(Val1,"0.00")
            Dim Lng2 As Long = Format(Val2,"0.00")
            If e.DataRow("形不成竞争") = False Then
                If e.DataRow("面试排名")<= lng  Then
                    e.DataRow("是否进入体检") = True
                Else
                    e.DataRow("是否进入体检") = False
                End If
            ElseIf  e.DataRow("形不成竞争") = True And e.DataRow("备注") IsNot Nothing  Then
                If  Lng1 >= Lng2  Then
                    e.DataRow("是否进入体检") = True
                Else
                    e.DataRow("是否进入体检") = False
                End If
            End If
    End Select


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/4 8:45:00 [只看该作者]

计算逻辑是什么?执行后有什么问题?

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


加好友 发短信
等级:九尾狐 帖子:2221 积分:18261 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2022/8/4 8:54:00 [只看该作者]

Select Case e.DataCol.name
        Case "形不成竞争","面试排名","职位数","备注","进入体检比例","面试加权成绩" 
dim lng as integer = math.round(e.DataRow("职位数")*e.DataRow("进入体检比例"),0)
If e.DataRow("形不成竞争") = False Then
e.DataRow("是否进入体检") = e.DataRow("面试排名")<= lng
else
if e.datarow.isnull("备注") = false then 
e.DataRow("是否进入体检") = e.DataRow("面试加权成绩") >= e.DataRow("备注")
end if 
end if
End Select

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8846 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2022/8/4 15:19:00 [只看该作者]

下述代码,逻辑关系是:1.如果“形不成竞争”=false,并且“面试排名”小于或等于“职位数”乘以“进入体检比例”,那么,“是否进入体检”为true,否则,“是否进入体检”为false;
                               2.如果“形不成竞争”=true,并且“面试室平均值”不为空, 在这种条件下,如果“面试加权成绩”大于或等于“面试室平均值”,那么“,“是否进入体检”为true,否则,“是否进入体检”为false;
问题:现在这段代码运行时,如果更改了面试加权成绩,不能及时再重新计算。
代码如下:Select Case e.DataCol.name
        Case "形不成竞争","面试排名","职位数","备注","进入体检比例","面试加权成绩" 
            Dim Val As Double = e.DataRow("职位数")*e.DataRow("进入体检比例")
            Dim Lng As Long =  Format(Val,"0")
            Dim Val1 As Double = e.DataRow("面试加权成绩")
            Dim Val2 As Double = e.DataRow("面试室平均值")
            Dim Lng1 As Long =  Format(Val1,"0.00")
            Dim Lng2 As Long = Format(Val2,"0.00")
            If e.DataRow("形不成竞争") = False Then
                If e.DataRow("面试排名")<= lng  Then
                    e.DataRow("是否进入体检") = True
                Else
                    e.DataRow("是否进入体检") = False
                End If
            ElseIf  e.DataRow("形不成竞争") = True And e.DataRow("面试室平均值") IsNot Nothing  Then
                If  Lng1 >= Lng2  Then
                    e.DataRow("是否进入体检") = True
                Else
                    e.DataRow("是否进入体检") = False
                End If
            End If
    End Select
[此贴子已经被作者于2022/8/4 15:19:50编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

"面试加权成绩" 是表达式列?

如果不是表达式列,也只会符合第2点才会用到"面试加权成绩" ,如果条件是符合第1点的当然不会有变化

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8846 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2022/8/4 16:22:00 [只看该作者]

不是表达式,明白了,谢谢

 回到顶部