以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  条件代码求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=63702)

--  作者:lisheng7177
--  发布时间: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

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


--  作者:有点甜
--  发布时间:2015/1/26 21:13:00
--  

 做一个相近工作表。

 

 然后,根据申报工种,去查得到对应的工种,然后查证书表

 

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


--  作者:lisheng7177
--  发布时间:2015/1/26 21:16:00
--  
谢谢版主,这就去试,但这个相近工种表好象列上面不好处理,一溜下来?
--  作者:lisheng7177
--  发布时间:2015/1/26 21:18:00
--  
另外,从上面这句代码我没看出来和“相近工种表”有什么关系?
--  作者:有点甜
--  发布时间:2015/1/26 21:21:00
--  
以下是引用lisheng7177在2015-1-26 21:16:00的发言:
谢谢版主,这就去试,但这个相近工种表好象列上面不好处理,一溜下来?

 

多值字段列,同一工种,写在一列。


--  作者:有点甜
--  发布时间:2015/1/26 21:21:00
--  
以下是引用lisheng7177在2015-1-26 21:18:00的发言:
另外,从上面这句代码我没看出来和“相近工种表”有什么关系?

 

看红色代码,查出红色代码的内容

 

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


--  作者:lisheng7177
--  发布时间:2015/1/26 21:22:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看明白,谢谢版主!
--  作者:lisheng7177
--  发布时间: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("原资格证书编号") & "\'")


--  作者:有点甜
--  发布时间:2015/1/26 22:13:00
--  

 叫你先根据本行的工种,去查表啊

 

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

 

msgbox(dr("工种"))


--  作者:lisheng7177
--  发布时间:2015/1/26 23:02:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看谢谢版主!