Foxtable(狐表)用户栏目专家坐堂 → [求助]如何做到每一姓名只填充一行合计行的


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

主题:[求助]如何做到每一姓名只填充一行合计行的

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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
[求助]如何做到每一姓名只填充一行合计行的  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/20 11:05:00 [只看该作者]

不要用filler,直接用统计

 

http://www.foxtable.com/webhelp/scr/0681.htm

 

 


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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
  发帖心情 Post By:2017/7/20 11:15:00 [只看该作者]

好,谢谢甜老师指引,我去研究下看如何实现。

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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
  发帖心情 Post By:2017/7/20 16:10:00 [只看该作者]

多谢甜老师,按老师你的指引知识点经鼓捣测试下已初步实现目标填充。


现再咨询另一个问题:A表是父表,B表是子表,它们是以“名称”进行关联的。现在的问题是如何找出B表的“名称”列中比A表多的不重复行

(因员工录入关系),并把它填充至A表,以达捡漏补缺。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
  发帖心情 Post By:2017/7/20 17:41:00 [只看该作者]

多谢甜老师,收下了。

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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
  发帖心情 Post By:2017/7/20 18:01:00 [只看该作者]

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

 回到顶部