Foxtable(狐表)用户栏目专家坐堂 → 请教:部门分月工资表的合计代码


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

主题:请教:部门分月工资表的合计代码

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
请教:部门分月工资表的合计代码  发帖心情 Post By:2009/5/8 14:28:00 [只看该作者]

要求,将工资库中的数据,将"实发工资"数按月汇总到部门分月表中,比如,技术部一处,每月的实发工资合计数分别汇总到每个月份列中,各部门的名称要自动生成,请看:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:论坛提问.table


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/8 15:01:00 [只看该作者]

很经典的统计。

既然工资库有月份列,可以省很多编码的工作量:

DataTables("部门分月工资表").DataRows.Clear()
 dim
f As New Filler
 f.SourceTable =
DataTables("工资库") '指定数据来源
 f.SourceCols =
"部门" '指定数据来源列
 f.
DataTable = DataTables("部门分月工资表") '指定数据接收表
 f.DataCols =
"部门" '指定数据接收列
 f.Fill()
'填充数据
 For
Each dc As DataCol In DataTables("部门分月工资表").DataCols
     If
dc.Name.EndsWith("月") Then
         For
Each dr As DataRow In DataTables("部门分月工资表").DataRows
             dr(dc.name) =
DataTables("工资库").Compute("Sum(实发工资)","月份 ='" & dc.Name & "' And 部门 = '" & dr("部门") & "'")
         Next
     End
If
 Next



 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目27.table

[此贴子已经被作者于2009-5-8 15:08:18编辑过]

[本帖被加为精华]
 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 15:06:00 [只看该作者]

贺老师,发错文件了

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/8 15:09:00 [只看该作者]

已经重发了。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 15:27:00 [只看该作者]

在二楼的公式后面,我加了一段代码,就可以在窗口的DataList1中显示出来了
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.DataTable = DataTables("部门分月工资表")
dst.Build()

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/8 15:29:00 [只看该作者]

如果不是要在预先设计好的表格中统计,你何不用交叉统计?这样直接就可以直接生成临时统计表,在DataList中显示,而且编码更加简单。
就像你上一个例子所做的。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 15:49:00 [只看该作者]

主要是各部门年终统计的不光是工资,另外还有年终奖及效益工资数,那些都是年底才会有数据的


 回到顶部
美女呀,离线,留言给我吧!
yangming
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 16:06:00 [只看该作者]

还有一个问题,我还有一张个人分月表,我套用了上面部门的代码,但是我有一节代码不知如何做,请老师帮忙看看:
请看下面红色的那节,关键是"Compute("Sum(实发工资)",  我不会做
DataTables("个人分月工资表").DataRows.Clear()
 dim f As New Filler
 f.SourceTable = DataTables("工资库") '指定数据来源
 f.SourceCols = "工号,部门,姓名" '指定数据来源列
 f.DataTable = DataTables("个人分月工资表") '指定数据接收表
 f.DataCols = "工号,部门,姓名" '指定数据接收列
 f.Fill() '填充数据
 For Each dc As DataCol In DataTables("个人分月工资表").DataCols
     If dc.Name.EndsWith("月") Then
         For Each dr As DataRow In DataTables("个人分月工资表").DataRows
             dr(dc.name) = DataTables("工资库").Compute("Sum(实发工资)","月份 ='" & dc.Name & "' And 工号= '" & dr("工号") & "'")
         Next
     End If
 Next
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.DataTable = DataTables("个人分月工资表")
dst.Build()

就是目前这个代码也可以生成数据
[此贴子已经被作者于2009-5-8 16:10:23编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/8 16:10:00 [只看该作者]

没道理的,将你做好的东西,保留相关表格,发上来看看。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 16:29:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:2部门分月统计.table

请看此表

 回到顶部
总数 27 1 2 3 下一页