以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]下列一段代码,逻辑有什么问题吗,总感到有不对的地方,就是找不到,请专家看看 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179032) |
-- 作者:hrw68529 -- 发布时间: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 |
-- 作者:有点蓝 -- 发布时间:2022/8/4 8:45:00 -- 计算逻辑是什么?执行后有什么问题? |
-- 作者:chnfo -- 发布时间: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 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/8/4 16:20:00 -- "面试加权成绩" 是表达式列? 如果不是表达式列,也只会符合第2点才会用到"面试加权成绩" ,如果条件是符合第1点的当然不会有变化
|
-- 作者:hrw68529 -- 发布时间:2022/8/4 16:22:00 -- 不是表达式,明白了,谢谢 |