Foxtable(狐表)用户栏目专家坐堂 → 优化代码求指教!


  共有3967人关注过本帖平板打印复制链接

主题:优化代码求指教!

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
优化代码求指教!  发帖心情 Post By:2015/1/18 16:37:00 [只看该作者]

Select e.DataCol.Name
    Case "鉴定等级","原技术资格等级","原等级取得时间","身份证号码","原资格证书编号"
        e.DataRow("是否合格") = (e.DataRow("鉴定等级") = "技师" AndAlso e.DataRow("原技术资格等级") = "助理工程师(电力类)" AndAlso Cdate(e.DataRow("原等级取得时间")).Year <= Date.Today.Year - 4)
        e.DataRow("是否合格") = (e.DataRow("鉴定等级") = "技师" AndAlso e.DataRow("原技术资格等级") = "工程师(电力类)")
        e.DataRow("是否合格") = (e.DataRow("鉴定等级") = "技师" AndAlso e.DataRow("原技术资格等级") = "助理工程师(工业工程)" AndAlso Cdate(e.DataRow("原等级取得时间")).Year <= Date.Today.Year - 4)
        e.DataRow("是否合格") = (e.DataRow("鉴定等级") = "技师" AndAlso e.DataRow("原技术资格等级") = "工程师(工业工程)")
        e.DataRow("是否合格") = (e.DataRow("鉴定等级") = "技师" AndAlso e.DataRow("原技术资格等级") = "高级工程师(电力类)")
        e.DataRow("是否合格") = (e.DataRow("鉴定等级") = "技师" AndAlso e.DataRow("原技术资格等级") = "高级工程师(工业工程)")
        e.DataRow("是否合格") = (e.DataRow("鉴定等级") = "技师" AndAlso e.DataRow("原技术资格等级") = "高级工" AndAlso Cdate(e.DataRow("原等级取得时间")).Year <= Date.Today.Year - 3) AndAlso Dim fdr As DataRow = DataTables("证书编号表").Find("身份证号码 = '" & e.DataRow("身份证号码") & "' And 申报鉴定工种 = '" & e.DataRow("申报鉴定工种") & "' And 证书编号 = '" & e.DataRow("原资格证书编号") & "' )
       
       
End Select

请教版主这段判断代码是否可能选择这样的形式写?如行,那么每句之间该用哪个代码连接,我用了OR、ORELSE、ELSE都提示语法错误?

“报名登记表”里有"鉴定等级","原技术资格等级","原等级取得时间","身份证号码","原资格证书编号"等列,另有“证书编号表”有“证书编号”,“身份证号码”,“申报鉴定工种”等列

在报名登记表里的“鉴定等级”列都是“技师,判断条件如下:

1、原技术资格等级=高级工,且原等级取得时间≥3、原资格证书编号=“证书编号表”的证书编号(为证明是同1人所有,加入两表之间身份证号码、申报鉴定工种的判断),如都满足,则“合格”;

2、原技术资格等级="工程师(电力类)"、"工程师(工业工程)"、"高级工程师(电力类)"、"高级工程师(工业工程)",则“合格”;

3、原技术资格等级="助理工程师(电力类)" 或"助理工程师(工业工程)" ,且原等级取得时间≥4,则“合格”。

以上3条只要符合其中1条,则该员工符合报名条件。

 

请版主指教!


 回到顶部