Foxtable(狐表)用户栏目专家坐堂 → 人事系统关于跨表选取的代码求助,请高人解答。


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

主题:人事系统关于跨表选取的代码求助,请高人解答。

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


加好友 发短信
等级:幼狐 帖子:52 积分:873 威望:0 精华:0 注册:2012/2/9 16:16:00
人事系统关于跨表选取的代码求助,请高人解答。  发帖心情 Post By:2012/2/18 13:35:00 [只看该作者]

问题较多,烦请高人解答。 附件中“登记表”为员工登记信息, 在“工资表”中能否实现如下功能: 1.第一次做工资时,“工资表”月份输入后,将“登记表”中目前所有部门、职务、姓名填入“工资表”对应列中,避免手工输入繁琐、出错。(能否在表中同时将部门相同的单元格合并?就类似数据统计中的那样,更好看些) 2."登记表"中选择员工离职时,将员工信息全部转移至“离职表”中,“登记表”不再显示,以免做工资时人员出错。 3.以后再做工资时,输入不同月份后,自动将上月工资表中的信息全部引用,如有个别工资变动的手工修改即可。 在“劳动合同”中实现如下功能: 1、部门、姓名列与“登记表”同步增加,对于离职人员做单元格颜色标记。 2、日期计算问题,到期时间=签订日期+签订期限+续签期限。(期限是下拉选项中的固定值) 麻烦大家最好给上传附件中的代码写上注释,以便理解学习,谢谢!!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试表.table


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/18 14:19:00 [只看该作者]

1、你可以做个按钮,单击这个按钮,自动增加所有员工,并填入部门、职务、姓名等列的内容,按钮代码为:

 

DataTables("工资表").DataRows.Clear()
Dim f As new Filler
f.SourceTable = DataTables("登记表")
f.DataTable = DataTables("工资表")
f.DataCols = "职务,姓名,部门"
f.Fill

 

2、很简单,设置等级表的DataColChanged事件:

 

Select Case e.DataCol.Name
    Case "离职"
        If e.DataRow("离职") = True Then
            Dim dr1 As DataRow = e.DataRow
            Dim dr2 As DataRow = DataTables("离职表").AddNew()
            For Each dc As DataCol In e.DataTable.DataCols
                If DataTables("离职表").DataCols.Contains(dc.name) Then
                    dr2(dc.name) = dr1(dc.name)
                End If
            Next

            dr1.Delete
        End If
End Select

 

3、也简单,做个按钮,将上个月的所有行“克隆”一下即可。

 

4、同步增加行,也很简单,将登记表的BeforeSaveDataRow事件代码设置为:

 

If e.DataRow.RowState = DataRowState.Added Then
    Dim dr1 As DataRow = e.DataRow
    Dim dr2 As DataRow = DataTables("劳动合同").AddNew()
    For Each dc As DataCol In e.DataTable.DataCols
        If DataTables("劳动合同").DataCols.Contains(dc.name) Then
            dr2(dc.name) = dr1(dc.name)
        End If
    Next
End If

 

5、至于日期计算,续签期限应该改为数值型,1表示1年,1.5表示一年半。

 

最后的建议,提问应该一个一个问题来,不要一次一大堆,解决一个,学习一个,尝试下一个,解决不了,再上论坛提问。

毕竟是你在开发系统。

 

 

 


 回到顶部