以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何做到每一姓名只填充一行合计行的 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=103948) |
-- 作者:Zhao2006 -- 发布时间:2017/7/20 11:02:00 -- [求助]如何做到每一姓名只填充一行合计行的 我想只填充合计行,但现在按钮的命令结果是按选择的月份逐行(明细)填充的。 Dim f As New Filler f.SourceTable = DataTables("员工月填报") \'指定数据来源 f.SourceCols = "员工姓名,年份,月份,生产投入_项目用工,生产投入_加班用工,生产投入_出差用工,生产投入_外勤现场等用工,生产投入_配合审计部用工" \'指定数据来源列 f.DataTable = DataTables("临时统计表") \'指定数据接收表 f.DataCols = "员工姓名,年份,月份,生产投入_项目用工,生产投入_加班用工,生产投入_出差用工,生产投入_外勤现场等用工,生产投入_配合审计部用工" \'指定数据接收列 Dim Filter As String With e.Form.Controls("renyuan") If .Value IsNot Nothing Then Filter = "员工姓名 = \'" & .Value & "\'" End If End With With e.Form.Controls("StartDate") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "工作时间_自始 >= #" & .Value & "#" End If End With With e.Form.Controls("EndDate") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "工作时间_到止 <= #" & .Value & "#" End If End With If e.Form.Controls("rdoYihe").Checked = True \' 如果审核状态选择了"已审核" If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "审核状态 = True" End If If e.Form.Controls("rdoWeihe").Checked = True \' 如果审核状态选择了"未审核" If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "审核状态 = False Or 审核状态 Is Null" End If If Filter > "" Then Tables("员工月填报").Filter = Filter End If f.Distinct = True \'排除重复内容,排除已有内容和空白值 f.Append = False \'默认为True,在接收表中增加新行用于接收数据,设为False,则在原有的行中填充,如果不够再增加新行. f.filter = Filter f.Fill() \'填充数据
[此贴子已经被作者于2017/7/20 11:03:15编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/7/20 11:05:00 -- 不要用filler,直接用统计
http://www.foxtable.com/webhelp/scr/0681.htm
|
-- 作者:Zhao2006 -- 发布时间:2017/7/20 11:15:00 -- 好,谢谢甜老师指引,我去研究下看如何实现。 |
-- 作者:Zhao2006 -- 发布时间:2017/7/20 16:10:00 -- 多谢甜老师,按老师你的指引知识点经鼓捣测试下已初步实现目标填充。 现再咨询另一个问题:A表是父表,B表是子表,它们是以“名称”进行关联的。现在的问题是如何找出B表的“名称”列中比A表多的不重复行 (因员工录入关系),并把它填充至A表,以达捡漏补缺。
|
-- 作者:有点甜 -- 发布时间:2017/7/20 16:33:00 -- for each dr as datarow in datatables("表B").datarows Dim fdr As DataRow = DataTables("表A").find("第一列 = \'" & dr("第一列") & "\'") If fdr Is Nothing Then Dim ndr As DataRow = DataTables("表A").addnew ndr("第一列") = dr("第一列") End If Next |
-- 作者:Zhao2006 -- 发布时间:2017/7/20 17:41:00 -- 多谢甜老师,收下了。 |
-- 作者:Zhao2006 -- 发布时间:2017/7/20 18:01:00 -- 真神奇!老师只有那么三言两语就实现了我苦脑多日的问题,再次谢谢甜老师。 |