以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  按日/周/月/季,如何设置汇总  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43383)

--  作者:发哥
--  发布时间:2013/12/5 18:14:00
--  按日/周/月/季,如何设置汇总

狐爸您好,首先感谢你们的产品,

现有如下问题,烦请帮手

 

数据是从K3导出后,进行相对应的汇总,烦请您帮手写下代码,感谢您


图片点击可在新窗口打开查看此主题相关图片如下:未标题-1.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:日周月季汇总项目.table


--  作者:yan2006l
--  发布时间:2013/12/5 18:32:00
--  
就是统计的时候,那个枚举的参数改一下,改一下,改一下。。。。。。。
--  作者:有点甜
--  发布时间:2013/12/5 19:48:00
--  
 做了 月和季 的统计,其余的你照着改


Dim d As Date = e.Form.Controls("DateTimePicker1").value
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim dt1 As New Date(y, m, 1) \'按月统计
Dim q As Integer = math.Ceiling(d.month / 3)
Dim dt2 As New Date(y, 3 * (q - 1) + 1, 1) \'获取该季度的第一天
Dim dt3 As New Date(y, 3 * q, Date.DaysInMonth(2011,3 * q)) \'获取该季度的最后一天
Dim filter As String = ""
DataTables("汇总").StopRedraw
DataTables("汇总").DataRows.Clear
For Each xh As String In DataTables("库存流水帐").GetValues("型号", "型号 is not null")
    Dim ndr As DataRow = DataTables("汇总").AddNew
    ndr("型号") = xh
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt1 & "# and 时间 < #" & dt1.AddMonths(1) & "#"
    ndr("入库统计_本月累计入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
    ndr("出库统计_本月累计出库") = DataTables("库存流水帐").Compute("sum(出库数量)", filter)
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt2 & "# and 时间 < #" & dt3.AddDays(1) & "#"
    ndr("入库统计_本季累计入库") = DataTables("库存流水帐").Compute("sum(出库数量)", filter)
Next
DataTables("汇总").ResumeRedraw

--  作者:狐狸爸爸
--  发布时间:2013/12/6 8:10:00
--  

还可以看看:

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

 


--  作者:发哥
--  发布时间:2013/12/6 9:47:00
--  

感谢您的帮助,但是我还是不能搞定它,

还有以下几点不明,烦请赐教。

 

1、“当日”的代码不知是哪条

2、“当月”汇总,没问题

3、“当季”汇总时,有问题,因为我选择任意月份时,它都会出现,(原表中,只有2013年11月份),我选择12月份时,它应该是空的才对

4、麻烦您在写好后,每条加点说明(就是那灰色文字说明),以方便我能理解,

 

万分感谢您

 

(另有一问,这是我司销售部要使用的,那数据是从K3系统导出的好大哦,将来能不用这个软件,做好这样的分析(我是市场部,使用的数据比他们小多了),


--  作者:Bin
--  发布时间:2013/12/6 10:00:00
--  
按日的话直接就判断等于当天即可.

时段筛选不应该有什么难度,照着帮助做就可以了http://www.foxtable.com/help/topics/2720.htm

--  作者:发哥
--  发布时间:2013/12/6 10:59:00
--  

烦请帮手看看:

 

Dim d As Date = e.Form.Controls("DateTimePicker1").value
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim dt1 As New Date(y, m, 1) \'按月统计

Dim q As Integer = math.Ceiling(d.month / 3)\'本面三行是季度条件
Dim dt2 As New Date(y, 3 * (q - 1) + 1, 1) \'获取该季度的第一天
Dim dt3 As New Date(y, 3 * q, Date.DaysInMonth(2011,3 * q)) \'获取该季度的最后一天

Dim w As Integer =  Date.Today.DayOfWeek  \'算出今天是星期几, 这三行是周条件
Dim dt4 As Date =  Date.Today.AddDays(-w)  \'获取本周的第一天
Dim dt5 As Date =  Date.Today.AddDays(6 -  w)  \'获取本周的最后一天

Dim dt6 As  New  Date(y,  1,  1) \'本二行是日条件
Dim dt7 As  New  Date(y,  12,  31)

Dim filter As String = ""
DataTables("汇总").StopRedraw
DataTables("汇总").DataRows.Clear
For Each xh As String In DataTables("库存流水帐").GetValues("型号", "型号 is not null")
    Dim ndr As DataRow = DataTables("汇总").AddNew
    ndr("型号") = xh
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt1 & "# and 时间 < #" & dt1.AddMonths(1) & "#"
    ndr("入库统计_本月累计入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
    ndr("出库统计_本月累计出库") = DataTables("库存流水帐").Compute("sum(出库数量)", filter)
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt2 & "# and 时间 < #" & dt3.AddDays(1) & "#"
    ndr("入库统计_本季累计入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt4 & "# and 时间 < #" & dt5 & "#"
    ndr("入库统计_本周累计入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
    filter = "型号 = \'" & xh & "\' and 时间 = #" & dt6 & "# and 时间 = #" & dt7  & "#"
    ndr("入库统计_本日入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
   
   
Next
DataTables("汇总").ResumeRedraw

 

 

“本日入库”“与本周累计入库”,执行没结果,您看看是哪儿出了错了,

 


--  作者:狐狸爸爸
--  发布时间:2013/12/6 11:09:00
--  
我把当日的也写好了:
 
 
Dim d As Date = e.Form.Controls("DateTimePicker1").value
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim dt1 As New Date(y, m, 1) \'按月统计
Dim q As Integer = math.Ceiling(d.month / 3)
Dim dt2 As New Date(y, 3 * (q - 1) + 1, 1) \'获取该季度的第一天
Dim dt3 As New Date(y, 3 * q, Date.DaysInMonth(2011,3 * q)) \'获取该季度的最后一天
Dim filter As String = ""
DataTables("汇总").StopRedraw
DataTables("汇总").DataRows.Clear
For Each xh As String In DataTables("库存流水帐").GetValues("型号", "型号 is not null")
    Dim ndr As DataRow = DataTables("汇总").AddNew
    ndr("型号") = xh
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt1 & "# and 时间 < #" & dt1.AddMonths(1) & "#"
    ndr("入库统计_本月累计入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
    ndr("出库统计_本月累计出库") = DataTables("库存流水帐").Compute("sum(出库数量)", filter)
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt2 & "# and 时间 < #" & dt3.AddDays(1) & "#"
    ndr("入库统计_本季累计入库") = DataTables("库存流水帐").Compute("sum(出库数量)", filter)
    filter = "型号 = \'" & xh & "\' and 时间 = #" & d & "#"
    ndr("入库统计_本日入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
    ndr("出库统计_当日出库") = DataTables("库存流水帐").Compute("sum(出库数量)", filter)
Next
DataTables("汇总").ResumeRedraw


--  作者:狐狸爸爸
--  发布时间:2013/12/6 11:15:00
--  

本周的也加上了:

 

Dim d As Date = "11/1/2013"  \'这是你输入的日期
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim w As Integer = d.DayOfWeek \'算出今天是星期几
Dim dt1 As New Date(y, m, 1) \'按月统计
Dim q As Integer = math.Ceiling(d.month / 3)
Dim dt2 As New Date(y, 3 * (q - 1) + 1, 1) \'获取该季度的第一天
Dim dt3 As New Date(y, 3 * q, Date.DaysInMonth(2011,3 * q)) \'获取该季度的最后一天
Dim dt4 As Date = d.AddDays(-w) \'获取本周的第一天
Dim dt5 As Date = d.AddDays(6 - w) \'获取本周的最后一天
Dim filter As String = ""
DataTables("汇总").StopRedraw
DataTables("汇总").DataRows.Clear
For Each xh As String In DataTables("库存流水帐").GetValues("型号", "型号 is not null")
    Dim ndr As DataRow = DataTables("汇总").AddNew
    ndr("型号") = xh
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt1 & "# and 时间 < #" & dt1.AddMonths(1) & "#"
    ndr("入库统计_本月累计入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
    ndr("出库统计_本月累计出库") = DataTables("库存流水帐").Compute("sum(出库数量)", filter)
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt2 & "# and 时间 < #" & dt3.AddDays(1) & "#"
    ndr("入库统计_本季累计入库") = DataTables("库存流水帐").Compute("sum(出库数量)", filter)
    filter = "型号 = \'" & xh & "\' and 时间 = #" & d & "#"
    ndr("入库统计_本日入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
    ndr("出库统计_当日出库") = DataTables("库存流水帐").Compute("sum(出库数量)", filter)
    filter = "型号 = \'" & xh & "\' and 时间 >= #" & dt4 & "# and 时间 <= #" & dt5 & "#"
    ndr("入库统计_本周累计入库") = DataTables("库存流水帐").Compute("sum(入库数量)", filter)
Next
DataTables("汇总").ResumeRedraw


--  作者:发哥
--  发布时间:2013/12/6 11:24:00
--  

图片点击可在新窗口打开查看感谢狐爸,

再次感谢。

 

 

估计我以为要可能会更多的麻烦您了,

因为,我这是给销售中心帮忙搞的,因为我用狐表来管理市场费用状态,结果被那儿的老总看中,让偶给他们也搞一搞。

 

当然,若是他们满意的话,让他们买套开发版(他们有钱,图片点击可在新窗口打开查看

 

在次感谢您,感谢狐表!!!!!!!!