以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何做到每一姓名只填充一行合计行的  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=103948)

--  作者:Zhao2006
--  发布时间:2017/7/20 11:02:00
--  [求助]如何做到每一姓名只填充一行合计行的
我想只填充合计行,但现在按钮的命令结果是按选择的月份逐行(明细)填充的。

图片点击可在新窗口打开查看此主题相关图片如下:填充.jpg
图片点击可在新窗口打开查看

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
--  
真神奇!老师只有那么三言两语就实现了我苦脑多日的问题,再次谢谢甜老师。