Foxtable(狐表)用户栏目专家坐堂 → 跨表统计获得日期列该月的总额


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

主题:跨表统计获得日期列该月的总额

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


加好友 发短信
等级:童狐 帖子:215 积分:1584 威望:0 精华:0 注册:2015/12/25 22:30:00
跨表统计获得日期列该月的总额  发帖心情 Post By:2016/9/2 2:51:00 [显示全部帖子]

If e.DataCol.Name = "姓名" Then
    Dim Filter As String = "[姓名] = '" & e.NewValue & "'"
    Dim m As Integer = CurrentTable.Current("日期").Month
    Dim y As Integer = CurrentTable.Current("日期").Year
    Dim dt1 As New Date(y, m, 1)
    Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
    Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
    e.DataRow("借支") = DataTables("借支表").Compute("Sum(金额)","[姓名] = '" & e.NewValue & "'")
End If
以上代码,老是统计借支表该姓名下的所有借支,而不会按照该月来统计图片点击可在新窗口打开查看

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


加好友 发短信
等级:童狐 帖子:215 积分:1584 威望:0 精华:0 注册:2015/12/25 22:30:00
  发帖心情 Post By:2016/9/2 2:51:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.table


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


加好友 发短信
等级:童狐 帖子:215 积分:1584 威望:0 精华:0 注册:2015/12/25 22:30:00
  发帖心情 Post By:2016/9/2 3:20:00 [显示全部帖子]

If e.DataCol.Name = "姓名" Then
    Dim Filter As String = "[姓名] = '" & e.NewValue & "'"
    Dim m As Integer = CurrentTable.Current("日期").Month
    Dim y As Integer = CurrentTable.Current("日期").Year
    Dim dt1 As New Date(y, m, 1)
    Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
    Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
    e.DataRow("借支") = DataTables("借支表").Compute("Sum(金额)",filter)
End If
这样如果一重置列,整列借支都是同一个数字了
代码要如何写才是正确的呢

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


加好友 发短信
等级:童狐 帖子:215 积分:1584 威望:0 精华:0 注册:2015/12/25 22:30:00
  发帖心情 Post By:2016/9/2 16:19:00 [显示全部帖子]

以下是引用2900819580在2016/9/2 8:59:00的发言:
If e.DataCol.Name = "姓名" Then
    Dim Filter As String = "[姓名] = '" & e.NewValue & "'"
    Dim m As Integer = CurrentTable.Current("日期").Month
    Dim y As Integer = CurrentTable.Current("日期").Year
    Dim dt1 As New Date(y, m, 1)
    Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
    Filter = filter & " and 日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
    e.DataRow("借支") = DataTables("借支表").Compute("Sum(金额)",filter)
End If

试一下
不行,重置列的话,鼠标选择哪一个日期的,重置后,“借支”列的数据都变成该行日期的统计


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


加好友 发短信
等级:童狐 帖子:215 积分:1584 威望:0 精华:0 注册:2015/12/25 22:30:00
  发帖心情 Post By:2016/9/2 16:24:00 [显示全部帖子]

以下是引用有点蓝在2016/9/2 16:24:00的发言:
上例子说明
例子2楼


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


加好友 发短信
等级:童狐 帖子:215 积分:1584 威望:0 精华:0 注册:2015/12/25 22:30:00
  发帖心情 Post By:2016/9/2 17:17:00 [显示全部帖子]

以下是引用狐狸爸爸在2016/9/2 16:59:00的发言:

除了4楼的问题,还有一个问题,这个问题出在:

CurrentTable.Current

 

应该用e.Datatow

 

参考:

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

 

 可以了。谢谢。代码编程是短板,没办法,只能什么不懂就来问,谢谢大家的帮助


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


加好友 发短信
等级:童狐 帖子:215 积分:1584 威望:0 精华:0 注册:2015/12/25 22:30:00
  发帖心情 Post By:2016/9/2 20:45:00 [显示全部帖子]

以下是引用有点蓝在2016/9/2 16:56:00的发言:
If e.DataCol.Name = "姓名" Then
    Dim Filter As String = "[姓名] = '" & e.NewValue & "'"
    Dim m As Integer = e.DataRow("日期").Month
    Dim y As Integer = e.DataRow("日期").Year
    Dim dt1 As New Date(y, m, 1)
    Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
    Filter = filter & " and 日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
    e.DataRow("借支") = DataTables("借支表").Compute("Sum(金额)",Filter)
End If
还有一个问题是,因为系统日期设置不同,发布后容易出现日期调用无法识别的问题
如上代码,要如何添加代码自动读取系统日期,然后组装成可用的日期格式,而不会造成格式不同无法识别呢


 回到顶部