以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教统计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82825)

--  作者:意悠心轻
--  发布时间:2016/3/25 13:07:00
--  请教统计问题
    密码:111222333
    我想统计喷涂车间2016年2月份的工时金额,最终造成excel表式,小计左边的数据直接统计喷涂车间工资表数据,小计右边的数据另引用其它表数据,现一步步来,小计右边的数暂搁不理,现要造小计左边的效果,我看了视频教程和帮助,均无造成这种形式讲解,唯请教你们,如何编这统计程序?

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2016/6/26 15:41:46编辑过]

--  作者:大红袍
--  发布时间:2016/3/25 15:20:00
--  

为什么不用交叉统计?

 

Dim g As New CrossTableBuilder("统计表1", DataTables("喷涂车间工资表"))
g.HGroups.AddDef("姓名")
g.VGroups.AddDef("日期", DateGroupEnum.None)
g.Totals.AddDef("计时工时", "计时工时")
g.Totals.AddDef("总金额", "总金额")
g.Build()
MainTable = Tables("统计表1")

 


--  作者:大红袍
--  发布时间:2016/3/25 15:21:00
--  

你直接用代码统计也可以啊

 

http://www.foxtable.com/help/topics/0681.htm

 


--  作者:意悠心轻
--  发布时间:2016/3/25 16:04:00
--  
我要自定义统计月份的数,这里统计2月份,其他月份不要。
--  作者:大红袍
--  发布时间:2016/3/25 16:06:00
--  

加条件

 

Dim g As New CrossTableBuilder("统计表1", DataTables("喷涂车间工资表"))
g.HGroups.AddDef("姓名")
g.VGroups.AddDef("日期", DateGroupEnum.None)
g.Totals.AddDef("计时工时", "计时工时")
g.Totals.AddDef("总金额", "总金额")

Dim d As Date = New Date(2016, 2,1)

g.Filter = "日期 >= #" & d & "# and 日期 < #" & d.AddMonths(1) & "#"
g.Build()
MainTable = Tables("统计表1")


--  作者:意悠心轻
--  发布时间:2016/3/25 17:00:00
--  
我想做成窗口4这种模式选定时间自动生成统计表。
[此贴子已经被作者于2016/6/26 15:41:57编辑过]

--  作者:大红袍
--  发布时间:2016/3/25 17:16:00
--  

TextChanged事件

 

Dim d As Date
If Date.TryParse(e.sender.text, d) Then
    Dim g As New CrossTableBuilder("统计表1", DataTables("喷涂车间工资表"))
    g.HGroups.AddDef("姓名")
    g.VGroups.AddDef("日期", DateGroupEnum.None)
    g.Totals.AddDef("计时工时", "计时工时")
    g.Totals.AddDef("总金额", "总金额")
   
    d = New Date(d.year, d.month, 1)
   
    g.Filter = "日期 >= #" & d & "# and 日期 < #" & d.AddMonths(1) & "#"
    e.Form.controls("table1").Table.datasource = g.BuildDataSource
End If


--  作者:意悠心轻
--  发布时间:2016/3/25 17:35:00
--  
工时、金额跑到列里了,加上以日统计,表就成了万里长城了,其实这种统计方式我在帮助和教程里看到,它不符合我的要求,我要方便打印,做成excel这种统计格式啊。
--  作者:大红袍
--  发布时间:2016/3/25 17:49:00
--  
Dim d As Date
If Date.TryParse(e.sender.text, d) Then
    Dim g As New CrossTableBuilder("统计表1", DataTables("喷涂车间工资表"))
    g.HGroups.AddDef("姓名")
    g.VGroups.AddDef("日期", DateGroupEnum.None)
    g.Totals.AddDef("计时工时", "计时工时")
   
    d = New Date(d.year, d.month, 1)
   
    g.Filter = "日期 >= #" & d & "# and 日期 < #" & d.AddMonths(1) & "#"
    Dim t As Table = e.Form.controls("table1").Table
    t.StopRedraw
    t.datasource = g.BuildDataSource
    t.DataTable.DataCols.add("数据", Gettype(String))
    t.DataTable.ReplaceFor("数据", "工时")
   
    g = New CrossTableBuilder("统计表1", DataTables("喷涂车间工资表"))
    g.HGroups.AddDef("姓名")
    g.VGroups.AddDef("日期", DateGroupEnum.None)
    g.Totals.AddDef("总金额", "总金额")
   
    g.Filter = "日期 >= #" & d & "# and 日期 < #" & d.AddMonths(1) & "#"
    g.Build
    For Each r As Row In Tables("统计表1").Rows
        Dim nr As Row = t.AddNew
        For i As Integer = 0 To t.Cols.count - 2
            nr(i) = r(i)
        Next
        nr("数据") = "金额"
    Next
    t.Cols("数据").Move(1)
    t.sort = "姓名,数据"
    t.ResumeRedraw
End If

--  作者:意悠心轻
--  发布时间:2016/3/25 17:58:00
--  
    表式是我要的表式了,但只统计了工时,没统计金额。