以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  筛选过程中,根据不同职务筛选  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93580)

--  作者:misamisali
--  发布时间:2016/12/1 17:45:00
--  筛选过程中,根据不同职务筛选

如图,《计时工资表》 有姓名和职务、岗位工资、保密津贴 列

我设置了一个 "按钮"  从《岗位薪资表》 中 根据“职务”列筛选相应的岗位工资、保密津贴到“计时工资库” 中

代码如下,但是执行不了,是什么问题。

 

\'------------------------以下代码根据职称导入岗位工资 保密津贴  竞业限制----------------------------
Dim Filter As String
If .Value IsNull("职务") = False Then
    pause = True
    Dim jn As DataRow
    Dim Filter As String
    Filter = "[职务] = \'" & i("职务") & "\'"
    jn = DataTables("岗位薪级表").Find(Filter)
    If jn IsNot Nothing Then \'如果找到
        If i.IsNull("岗位工资") = False Then
            dr("岗位工资") = jn( i("岗位工资") )
        Else
            MessageBox.Show(i("姓名") & "同志的职务找不到对应的岗位工资标准,请核对再操作!")
            Exit For
            pause = False
        End If
    Else
        MessageBox.Show( i("姓名") & " 同志的职务找不到对应的工资标准,请检查其技能级别")
        Exit For
        pause = False
    End If
End If
   


图片点击可在新窗口打开查看此主题相关图片如下:岗位薪级表.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:计时工资库.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2016/12/1 17:57:00
--  
麻烦完整代码贴出来。或者上传例子
--  作者:misamisali
--  发布时间:2016/12/1 18:55:00
--  
例子太大了,不好上传,完整代码:
If DataTables("员工信息表").DataRows.Count<1
    MessageBox.Show("请先在 <员工信息表> 中添加本期计时工资发放人员的姓名,且身份证号不能重复!","提示")
    \'MainTable = Tables("员工信息表")
Else
    If Tables("计时工资库").RowS.Count<1
        For Each I As DataRow In DataTables("员工信息表").Select("岗位类别=\'计时\'")
            Dim DR As Row = Tables("计时工资库").AddNew
            DR("姓名") = I("姓名")
            dr("身份证号码") = i("身份证号码")
            dr("入司日期") = i("入司日期")
            dr("部门") = i("部门")
            dr("职务") = i("职务")
            dr("司龄") = i("司龄")
            DR("年份") = Vars("yy")
            dr("月份") = vars("mm")
        Next
    End If
End If
\'------------------------以上代码从《员工信息表》导入员工信息---------------------------------------
\'------------------------以下代码从《岗位薪级表》,根据职称导入岗位工资 保密津贴  竞业限制----------------------------
Dim Filter As String
If .Value IsNull("职务") = False Then
    pause = True
    Dim jn As DataRow
    Dim Filter As String
    Filter = "[职务] = \'" & i("职务") & "\'"
    jn = DataTables("岗位薪级表").Find(Filter)
    If jn IsNot Nothing Then \'如果找到
        If i.IsNull("岗位工资") = False Then
            dr("岗位工资") = jn( i("岗位工资") )
        Else
            MessageBox.Show(i("姓名") & "同志的职务找不到对应的岗位工资标准,请核对再操作!")
            Exit For
            pause = False
        End If
    Else
        MessageBox.Show( i("姓名") & " 同志的职务找不到对应的工资标准,请检查其技能级别")
        Exit For
        pause = False
    End If
End If



--  作者:有点蓝
--  发布时间:2016/12/1 20:19:00
--  
If DataTables("员工信息表").DataRows.Count = 0
    MessageBox.Show("请先在 <员工信息表> 中添加本期计时工资发放人员的姓名,且身份证号不能重复!","提示")
    \'MainTable = Tables("员工信息表")
Else
    If Tables("计时工资库").RowS.Count=0
        Dim jn As DataRow
        For Each I As DataRow In DataTables("员工信息表").Select("岗位类别=\'计时\'")
            Dim DR As Row = Tables("计时工资库").AddNew
            DR("姓名") = I("姓名")
            dr("身份证号码") = i("身份证号码")
            dr("入司日期") = i("入司日期")
            dr("部门") = i("部门")
            dr("职务") = i("职务")
            dr("司龄") = i("司龄")
            DR("年份") = Vars("yy")
            dr("月份") = vars("mm")
            jn = DataTables("岗位薪级表").Find("[职务] = \'" & i("职务") & "\'")
            If jn IsNot Nothing Then \'如果找到
                dr("岗位工资") = jn("岗位工资")
            End If
        Next
    End If
End If