Foxtable(狐表)用户栏目专家坐堂 → 如何生成负数进行统计


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

主题:如何生成负数进行统计

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
如何生成负数进行统计  发帖心情 Post By:2022/5/30 10:12:00 [只看该作者]

需求:如何实现类型为“冲帐”数量为负数,并能进行统计?

下面代码,只样式负数,做统计是正数,无法正确统计。

If  e.Row("类型") = "冲帐"  Then
    e.Style = "冲帐"
    If e.Col.name = "数量"
        e.text = "-" & e.Row("数量")   
    End If

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/30 11:37:00 [只看该作者]

怎么做统计的

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/5/30 12:22:00 [只看该作者]

Dim b As New GroupTableBuilder("统计表1",DataTables("明细"))

b.Groups.AddDef("品名")

b.Totals.AddDef("数量","订购数量") '
b.Totals.AddDef("金额","订购金额") '
b.Filter = Filter 
Tables("统计_Table1").DataSource = b.BuildDataSource()

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


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

Dim b As New SQLGroupTableBuilder("统计表1", "明细")
b.ConnectionName = "数据源"
b.Groups.AddDef("品名")
b.Totals.AddExp("订购数量", "IIF(类型='冲帐',-1,1) * 数量") '
b.Totals.AddDef("金额", "订购金额") '
b.Filter = Filter 
Tables("统计_Table1").DataSource = b.BuildDataSource()

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/5/30 15:30:00 [只看该作者]

老师,

4楼是代码,是后台统计,由于我有设定按不同人只看不同数据,及对此进行统计,所以用当前表的数据,改一下代码,是错,请老师,纠正,谢谢


Dim b As New GroupTableBuilder("统计表1",DataTables("明细"))

b.Groups.AddDef("品名")

b.Totals.AddDef("订购数量", "IIF(类型='冲帐',-1,1) * 数量") '
'b.Totals.AddExp("订购数量", "IIF(类型='冲帐',-1,1) * 数量") '
b.Totals.AddDef("金额","订购金额") '
b.Filter = Filter 
Tables("统计_Table1").DataSource = b.BuildDataSource()

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/30 15:43:00 [只看该作者]


[此贴子已经被作者于2022/5/30 15:43:11编辑过]

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/30 15:49:00 [只看该作者]

只能是后台才能这样统计。可以把【不同人只看不同数据】的条件也加到统计条件里

或者在表格里添加一个表达式列,把类型='冲帐'的值改为负数,类似:IIF(类型='冲帐',-1*数量,数量),然后通过表达式列进行统计


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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/5/30 16:02:00 [只看该作者]

Dim Filter1 As String = "制单人='" & _Username & "'"
Dim dr2 As DataRow
dr2 = DataTables("Users").Find("[Group] = '" & _UserGroup & "'")
Dim s As String
If dr2 IsNot Nothing Then
    s = dr2("Xjry")
    If s > "" Then
      Filter1 = Filter1 & " or UserID in (" & s.Replace(",", ",") & ")"
        
    End If 
End If



Dim b As New SQLGroupTableBuilder("统计表1", "明细")
b.C
b.Groups.AddDef("品名")
b.Totals.AddExp("订购数量", "IIF(类型='冲帐',-1,1) * 数量") '
b.Totals.AddDef("金额", "订购金额") '
b.Filter = Filter 
Tables("统计_Table1").DataSource = b.BuildDataSource()
条件没起作用,还是全部后台数据


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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/30 16:15:00 [只看该作者]

b.Filter = Filter1 

 回到顶部