Foxtable(狐表)用户栏目专家坐堂 → 按时间段求和


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

主题:按时间段求和

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


加好友 发短信
等级:幼狐 帖子:173 积分:2032 威望:0 精华:0 注册:2017/12/20 8:56:00
按时间段求和  发帖心情 Post By:2021/6/13 17:17:00 [只看该作者]

现在国家小规模纳税人人按季度纳税,个人所得税按年度缴纳,季度预交,我有一个表,需要通过代码动态计算每个季度的收入合计和每个年度截止每个季度末的累计收入,这个代码怎么写呢。谢谢
图片点击可在新窗口打开查看此主题相关图片如下:123456.png
图片点击可在新窗口打开查看
,要求分客户计算
[此贴子已经被作者于2021/6/13 20:15:37编辑过]

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/13 20:27:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/2964.htm

Dim b As New SQLGroupTableBuilder("统计表1","xx表")
b
.Groups.AddDef("客户")
b.Groups.AddDef("年度")
b
.Totals.AddExp("1季度","iif(月份=1 or 月份=2 or 月份=3,金额,0)")
b.Totals.AddExp("2季度","iif(月份=3 or 月份=4 or 月份=5,金额,0)")
……
b.build()
MainTable
 = Tables("统计表1")

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


加好友 发短信
等级:幼狐 帖子:173 积分:2032 威望:0 精华:0 注册:2017/12/20 8:56:00
  发帖心情 Post By:2021/6/14 7:27:00 [只看该作者]

统计结果直接写入当前表右边的当前行,然后用当前行的的累计数—上行的累计数写入另外一列的当前行,代码怎么写,谢谢老师
[此贴子已经被作者于2021/6/14 8:22:21编辑过]

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/14 21:07:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:173 积分:2032 威望:0 精华:0 注册:2017/12/20 8:56:00
  发帖心情 Post By:2021/6/15 0:46:00 [只看该作者]

根据您提供的意见,我做了,累计数可以做出来,但是我要计算第二季的累计,第三季度的累计时,需要加入[日期]>#04/01/2021#and [日期]<#6/30/2021#这样一个判断不知道该怎么加,谢谢

Select  Case e.DataCol.Name
     Case "金额"
         Dim dr As  DataRow
         Dim drs As List(of DataRow)
         dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") '找出上一行
        If dr Is Nothing  Then  '如果没有找到上一行,说明本行就是第一行
            e.DataRow("本季累计") = e.DataRow("金额")
             dr = e.DataRow
         End If
         drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey"),  "[_SortKey]")
         For i  As  Integer =  1  To drs.Count -  1  '重算余下行的余额
            drs(i)("本季累计") = drs(i-1)("本季累计") + drs(i)("金额")
         Next   
 End  Select

感谢


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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/15 8:40:00 [只看该作者]

比如

dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey") & “ and 年度=” & e.DataRow("_SortKey") & “ and 月份 in (4,5,6)”, "[_SortKey] Desc") '找出上一行

 回到顶部