以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 问题求助 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126935) |
-- 作者:lisheng1971 -- 发布时间:2018/11/1 11:43:00 -- 问题求助 Else If e.DataRow("鉴定等级") = "高级工" Then 表中有“鉴定等级”、“申报性质”,“参加工作时间”,“原技术资格等级”,“是否合格”等列,这是其中一段代码,当“鉴定等级”为中级工时,想实现如下功能判断: 1、当“申报性质”是“正常申报”时,如“原技术资格等级”为空,且“参加工作时间”满12年(含),则“是否合格”为True; 2、当“申报性质”是“正常申报”时,如“原技术资格等级”为空,且“参加工作时间”不满12年,则“是否合格”为False; 3、当“申报性质”是“正常申报”时,如“原技术资格等级”、“参加工作时间”都为空,则“是否合格”为True; 现在的问题是:当“参加工作时间”为空时,“是否合格”没有变化!!!也不报错!!! 这是代码上出了什么问题吗? 烦请版主指点!!!谢谢!!! |
-- 作者:有点甜 -- 发布时间:2018/11/1 12:28:00 -- Else If e.DataRow("鉴定等级") = "高级工" Then else e.DataRow("是否合格") = false
逻辑错误的时候,加入msgbox弹出关键值,看是否正常。 |
-- 作者:lisheng1971 -- 发布时间:2018/11/1 15:23:00 -- 谢谢版主!情况还是一样! Else If e.DataRow("鉴定等级") = "高级工" Then If e.DataRow("申报性质") = "正常申报" AndAlso e.DataRow("原技术资格等级") = Nothing AndAlso Cdate(e.DataRow("参加工作时间")).Year <= Date.Today.Year - 12 Then e.DataRow("是否合格") = True Else If e.DataRow("申报性质") = "正常申报" AndAlso e.DataRow("原技术资格等级") = Nothing AndAlso Cdate(e.DataRow("参加工作时间")).Year > Date.Today.Year - 12 Then e.DataRow("是否合格") = False Else If e.DataRow("申报性质") = "正常申报" AndAlso e.DataRow("原技术资格等级") = Nothing AndAlso e.DataRow("参加工作时间") = Nothing Then e.DataRow("是否合格") = true----此处实际是想实现为 False 前面我打错了! |
-- 作者:lisheng1971 -- 发布时间:2018/11/1 15:31:00 -- 版主,这个问题是不是和“参加工作时间”是日期时间型有关? |
-- 作者:有点甜 -- 发布时间:2018/11/1 15:36:00 -- 改成
Else If e.DataRow("鉴定等级") = "高级工" Then else If e.DataRow("申报性质") = "正常申报" AndAlso e.DataRow("原技术资格等级") = Nothing AndAlso Cdate(e.DataRow("参加工作时间")).Year <= Date.Today.Year - 12 Then |
-- 作者:lisheng1971 -- 发布时间:2018/11/1 15:47:00 -- 可以了,这个居然还有先后秩序!!!谢谢!!! |