以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码编写问题求助?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69747)

--  作者:lisheng7177
--  发布时间:2015/6/10 11:05:00
--  代码编写问题求助?

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

 

上述代码不报错,但不起作用!!!!!!

有“报名登记表”和“证书编号表”,有1员工要报考“高级技师”(已取得“技师”资格,在“证书编号表”中可查到),

他“是否合格”的条件是:

      1、“申报鉴定工种”和“证书编号表”中取得“技师”资格时的工种一样;

      2、取得“技师”资格满3年;

以上2条同时符合,则其报名条件为“合格”!!!!!!

 

求助版主给指教,谢谢!!!!!!


--  作者:lisheng7177
--  发布时间:2015/6/10 11:08:00
--  
另外,如果该员工报名条件合格,则其“资格审核”则为“通过”,否则为“淘汰”,这代码应该如何加进去?
--  作者:大红袍
--  发布时间:2015/6/10 11:12:00
--  

 上传具体例子,说明具体逻辑。

 

 或者你加入msgbox代码看一下为什么没执行里面的代码。


--  作者:lisheng7177
--  发布时间:2015/6/10 11:35:00
--  

图片点击可在新窗口打开查看谢谢!!!!!!例子很大,传不上来,本人对代码编写很小白

 


--  作者:大红袍
--  发布时间:2015/6/10 11:44:00
--  

 那你现在是什么问题?代码和你的描述根本就不搭调。

 

 If e.DataRow("原技术资格等级") = "技师" AndAlso e.DataRow("原资格证书工种") = "申报鉴定工种" AndAlso Cdate(e.DataRow("原等级取得时间")).Year <= Date.Today.Year - 3 Then

 这句代码的意思是,如果是技师,是申报鉴定工种,而且技师取得时间超过3年。


--  作者:lisheng7177
--  发布时间:2015/6/10 13:10:00
--  

2 个表,“报名登记表”和“证书编号表”,

    其中“报名登记表”中有“身份证号码”、“原资格证书工种”、“原资格取得时间”、“鉴定等级”、“申报鉴定工种”、“是否合格”等列;

          “证收编号表”中有“身份证号码”、“鉴定等级”、“申报鉴定工种”、“证书编号”等列;

 

想达到的目的:

      当1个员工想报考高级技师,在“报名登记表”中,他的“原技术资格等级”必需是技师,且技师取得时间>=3年,且“原资格证书工种”和现在报名“申报鉴定工种”是一致的,他所“申报鉴定工种”是否和“证书编号表”中他取得技师资格时的“申报鉴定工种”是一致的;

     在“证书编号表”中比对“身份证号码”、“申报鉴定工种”、“证书编号”确定该员工在“报名登记表”中所填的是真实的;

 

通过上述条件判定他报名“是否合格”

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报名登记表.xls

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:证书编号表.xls


--  作者:大红袍
--  发布时间:2015/6/10 14:14:00
--  

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

        Else

            e.DataRow("是否合格") = False
        End If
    End If
End If

[此贴子已经被作者于2015/6/10 14:14:31编辑过]

--  作者:lisheng7177
--  发布时间:2015/6/10 14:52:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:%nmr1ta@$0`j03cok}qbng.png
图片点击可在新窗口打开查看

 

先谢谢!!!!!!现在出现以上报错


--  作者:Bin
--  发布时间:2015/6/10 14:53:00
--  
证书编号表.没有 技术资格等级列

检查一下.是不是列名错了

或者你搞错标题和列名了.

--  作者:大红袍
--  发布时间:2015/6/10 15:09:00
--  

改一下

 

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

        Else

            e.DataRow("是否合格") = False
        End If
    End If
End If