以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教:部门分月工资表的合计代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2720) |
||||
-- 作者:yangming -- 发布时间:2009/5/8 14:28:00 -- 请教:部门分月工资表的合计代码 要求,将工资库中的数据,将"实发工资"数按月汇总到部门分月表中,比如,技术部一处,每月的实发工资合计数分别汇总到每个月份列中,各部门的名称要自动生成,请看:
|
||||
-- 作者:狐狸爸爸 -- 发布时间: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
[此贴子已经被作者于2009-5-8 15:08:18编辑过]
|
||||
-- 作者:yangming -- 发布时间:2009/5/8 15:06:00 -- 贺老师,发错文件了 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/5/8 15:09:00 -- 已经重发了。 |
||||
-- 作者:yangming -- 发布时间:2009/5/8 15:27:00 -- 在二楼的公式后面,我加了一段代码,就可以在窗口的DataList1中显示出来了 Dim dst As WinForm.DataList = e.Form.Controls("DataList1") dst.DataTable = DataTables("部门分月工资表") dst.Build() |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/5/8 15:29:00 -- 如果不是要在预先设计好的表格中统计,你何不用交叉统计?这样直接就可以直接生成临时统计表,在DataList中显示,而且编码更加简单。 就像你上一个例子所做的。 |
||||
-- 作者:yangming -- 发布时间:2009/5/8 15:49:00 -- 主要是各部门年终统计的不光是工资,另外还有年终奖及效益工资数,那些都是年底才会有数据的 |
||||
-- 作者:yangming -- 发布时间: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编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/5/8 16:10:00 -- 没道理的,将你做好的东西,保留相关表格,发上来看看。 |
||||
-- 作者:yangming -- 发布时间:2009/5/8 16:29:00 --
请看此表 |