以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 不同时段使用不同的评判标准 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109734) |
-- 作者:wangj6666 -- 发布时间:2017/11/18 9:55:00 -- 不同时段使用不同的评判标准 各位专家:您们好! 以前有个表达式列的表达式为IIF([偏差] > 4.9 or [偏差] <= -5 or [标识是否正确] = \'不正确\' or [倒膜外观是否差异] = \'有差异\', \'不合格\', \'合格\'),如今要提高偏差的管控要求,将偏差的要求由[偏差] > 4.9 or [偏差] <= -5,提高到[偏差] > 2.9 or [偏差] <= -3,但之前时段的所有行评判标准要维持以前的要求,之后的按新的偏差要求评判,请问各位专家要如何修改?
|
-- 作者:有点蓝 -- 发布时间:2017/11/18 10:09:00 -- 那就不能使用表达式了 |
-- 作者:wangj6666 -- 发布时间:2017/11/18 10:59:00 -- 谢谢!能帮助我写一下用Select Case语言达到上述要求的代码吗? |
-- 作者:有点蓝 -- 发布时间:2017/11/18 11:08:00 -- 先使用下面代码,然后重置"偏差"列 Select Case e.DataCol.Name Case "偏差","标识是否正确","倒膜外观是否差异" If e.DataRow("偏差") > 4.9 orelse e.DataRow("偏差") <= -5 orelse e.DataRow("标识是否正确") = "不正确" orelse e.DataRow("倒膜外观是否差异") = "有差异" Then e.DataRow("xxx列") = "不合格" Else e.DataRow("xxx列") = "合格" End If End Select 再把代码偏差值改为最新的即可,然后新录入的就会按照新的偏差值进行计算。
|
-- 作者:wangj6666 -- 发布时间:2017/11/18 11:23:00 -- 非常感谢!但还没有加入时段日期,如果我想从2017年10月31日前的按上述[偏差] > 4.9 or [偏差] <= -5进行评判,2017年10月31日起(含10月30日)按[偏差] > 2.9 or [偏差] <= -3进行评判,还需如何进行修改呢? |
-- 作者:有点蓝 -- 发布时间:2017/11/18 11:31:00 -- Select Case e.DataCol.Name Case "偏差","标识是否正确","倒膜外观是否差异" ,"日期" If (e.DataRow("日期") < #10/31/2017# andalso e.DataRow("偏差") > 4.9 orelse e.DataRow("偏差") <= -5) orelse (e.DataRow("日期") >= #10/31/2017# andalso e.DataRow("偏差") > 2.9 orelse e.DataRow("偏差") <= -3) orelse e.DataRow("标识是否正确") = "不正确" orelse e.DataRow("倒膜外观是否差异") = "有差异" Then e.DataRow("xxx列") = "不合格" Else e.DataRow("xxx列") = "合格" End If End Select |
-- 作者:wangj6666 -- 发布时间:2017/11/21 14:25:00 -- 我编写好后,它只能在日期变化后,才能重新判断是否合格,当偏差修改后却不能及时重新更新判断结果?另外:有些2017年10月31日之前的时间,偏差小于-3的还是被判断为了不合格。请问还需要如何编码解决? |
-- 作者:有点甜 -- 发布时间:2017/11/21 14:35:00 -- Select Case e.DataCol.Name Case "偏差","标识是否正确","倒膜外观是否差异" ,"日期" If (e.DataRow("日期") < #10/31/2017# AndAlso (e.DataRow("偏差") > 4.9 OrElse e.DataRow("偏差") <= -5)) OrElse (e.DataRow("日期") >= #10/31/2017# AndAlso (e.DataRow("偏差") > 2.9 OrElse e.DataRow("偏差") <= -3)) OrElse e.DataRow("标识是否正确") = "不正确" OrElse e.DataRow("倒膜外观是否差异") = "有差异" Then e.DataRow("xxx列") = "不合格" Else e.DataRow("xxx列") = "合格" End If End Select |
-- 作者:wangj6666 -- 发布时间:2017/11/21 16:14:00 -- 谢谢专家的帮助,目前日期的问题解决了。偏差列在我的表中是个表达式列,目前还是偏差表达式计算结果已超过标准后,判定的结果还是没有进行相应的改变,是不是哪里还有不对的地方?请指教!谢谢! |
-- 作者:有点甜 -- 发布时间:2017/11/21 16:31:00 -- 表达式列不能触发datacolchanged事件的。你看看
http://www.foxtable.com/webhelp/scr/2381.htm
|