Foxtable(狐表)用户栏目专家坐堂 → 条件代码求助


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

主题:条件代码求助

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
条件代码求助  发帖心情 Post By:2015/1/26 21:03:00 [显示全部帖子]

高级工报考技师:

1、工种有---工种1、工种2、工种3、工种4、工种5、......工种20,其中工种1-工种5属于相近工种,工种6-工种10属于相近工种,......

    假设员工甲原来取得了工种1的高级工证书,现在他其他条件都符合,想考工种2(只要是工种1的相近工种就可以)的技师,这在报考条例里是允许的;

    现在的高级工-技师判定合格与否的代码如下---

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

但还是在判断上有欠缺,请版主指教:这是否可以通过代码写入实现,是否要建个“相近工种表”之类的?


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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/26 21:16:00 [显示全部帖子]

谢谢版主,这就去试,但这个相近工种表好象列上面不好处理,一溜下来?

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/26 21:18:00 [显示全部帖子]

另外,从上面这句代码我没看出来和“相近工种表”有什么关系?

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/26 21:22:00 [显示全部帖子]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看明白,谢谢版主!

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/26 21:48:00 [显示全部帖子]

再求版主指教:工种大概有100多个,分成7、8组,每组少的有7、8个工种,多的有11、12个工种,我是不是要每组都写1句代码?

比如说:

Dim fdr As DataRow = DataTables("证书编号表").Find("身份证号码 = '" & e.DataRow("身份证号码") & "' And 申报鉴定工种 in (" & "'工种1', '工种2', '工种3','工种4','工种5','工种6','工种7','工种8','工种9'" & ") And 证书编号 = '" & e.DataRow("原资格证书编号") & "'")

Dim fdr As DataRow = DataTables("证书编号表").Find("身份证号码 = '" & e.DataRow("身份证号码") & "' And 申报鉴定工种 in (" & "'工种10', '工种11', '工种12'" & ") And 证书编号 = '" & e.DataRow("原资格证书编号") & "'")


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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/26 23:02:00 [显示全部帖子]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看谢谢版主!

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/27 9:02:00 [显示全部帖子]


此主题相关图片如下:azo%mfsp`1teg`8)}(9n1`c.png
按此在新窗口浏览图片

此主题相关图片如下:vf_y_1ip(d6rnvp_~why05.png
按此在新窗口浏览图片
上面是我建的两种“相近工种表”

 

Dim fdr As DataRow = DataTables("证书编号表").Find("身份证号码 = '" & e.DataRow("身份证号码") & "' And 申报鉴定工种 in (" & "'工种1', '工种2', '工种3'" & ") And 证书编号 = '" & e.DataRow("原资格证书编号") & "'")

 

Dim dr As DataRow
dr =
DataTables("工种表").Find("工种 like '%" & e.DataRow("工种1") & "%'")

 

msgbox(dr("工种"))

这两段代码,我没理解透:上面那段的“工种1”和下面那段的“工种1”应该不是指具体的工种吧?我理解应该是“相近工种表”里的“各相近工种列,即“第*考评组””,那么下面那段的“工种”是指对应哪一列?或者具体的工种?

 

我按理解写了几段不同的代码,但都报错,“相近工种表”也做了两种,下面代码是我最后琯的一部分,

Else If e.DataRow("原技术资格等级") = "高级工" AndAlso Cdate(e.DataRow("原等级取得时间")).Year <= Date.Today.Year - 3
        Dim fdr As DataRow = DataTables("证书编号表").Find("身份证号码 = '" & e.DataRow("身份证号码") & "' And 申报鉴定工种 in (" & "'第一考评组', '第二考评组', '第三考评组','第四考评组','第五考评组','第六考评组','第七考评组'" & ") And 证书编号 = '" & e.DataRow("原资格证书编号") & "'")
        Dim dr As DataRow
        dr = DataTables("相近工种表").Find("第一考评组 like '%" & e.DataRow("申报鉴定工种") & "%'")
        msgbox(dr("第一考评组"))
具体问题在嗜好,请版主指教明示?

 


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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/27 9:18:00 [显示全部帖子]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看我这就去改改,看看能不能行

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/27 10:01:00 [显示全部帖子]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

 

Else If e.DataRow("原技术资格等级") = "高级工" AndAlso Cdate(e.DataRow("原等级取得时间")).Year <= Date.Today.Year - 3
        Dim fdr As DataRow = DataTables("证书编号表").Find("身份证号码 = '" & e.DataRow("身份证号码") & "' And 申报鉴定工种 in (" & "'变电站值班员', '内线安装工', '继电保护工','水轮机检修工','配电线路工','装表接电工','抄表核算收费员'" & ") And 证书编号 = '" & e.DataRow("原资格证书编号") & "'")
        Dim dr As DataRow
        dr = DataTables("相近工种表").Find("工种 like '%" & e.DataRow("变电站值班员") & "%'")
        dr = DataTables("相近工种表").Find("工种 like '%" & e.DataRow("内线安装工") & "%'")
        dr = DataTables("相近工种表").Find("工种 like '%" & e.DataRow("继电保护工") & "%'")
        dr = DataTables("相近工种表").Find("工种 like '%" & e.DataRow("水轮机检修工") & "%'")
        dr = DataTables("相近工种表").Find("工种 like '%" & e.DataRow("配电线路工") & "%'")
        dr = DataTables("相近工种表").Find("工种 like '%" & e.DataRow("装表接电工") & "%'")
        dr = DataTables("相近工种表").Find("工种 like '%" & e.DataRow("抄表核算收费员") & "%'")
        msgbox(dr("工种"))
这样写错在哪?我根据相近工种的组,每组取了一个工种写的,但还是报错?


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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/27 10:19:00 [显示全部帖子]

 

[此贴子已经被作者于2015-1-27 10:21:36编辑过]

 回到顶部
总数 13 1 2 下一页