Foxtable(狐表)用户栏目专家坐堂 → 如何转换成负数


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

主题:如何转换成负数

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
如何转换成负数  发帖心情 Post By:2021/10/26 17:17:00 [只看该作者]

bd1.Totals.AddDef("收支金额","优惠额度")

这行统计增加列的代码,如何加上表达式变成负数填上去

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


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

方法1、生成统计表后,另外使用代码给所有行 *-1
2、使用Totals.AddExp功能

bd1.Totals.AddExp("优惠额度", "收支金额 * -1")

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2021/10/27 8:39:00 [只看该作者]

bd1.Totals.AddDef("收支金额","优惠额度")      收支金额 修改名称为优惠额度代替
bd1.Totals.AddExp("优惠额度", "收支金额 * -1")      优惠额度*-1换算成负数

老师这代码错误提示是什么原因

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


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

什么错误提示?

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2021/10/27 9:04:00 [只看该作者]

无法设置列“优惠额度”的表达式,不能设置expression属性,表达式中存在循环引用

Dim bd1 As New GroupTableBuilder("统计表5", DataTables("hyjd1"))
bd1.Groups.AddDef("收支时间", DateGroupEnum.Year, "年")
bd1.Groups.AddDef("收支时间", "月")
bd1.Groups.AddDef("收支时间", DateGroupEnum.Day, "日")
bd1.Groups.AddDef("星期")

bd1.Totals.AddDef("收支金额","优惠额度")
bd1.Totals.AddExp("优惠额度", "收支金额* -1")

bd1.Totals.AddDef("张数","折算张数")

Dim dt1 As fxDataSource
dt1 = bd1.BuildDataSource()

dt1.show("统计表c") '将统计结果绑定到Table  暂时不直接显示

Dim t As Table = Tables("统计表c")
With t.DataTable.DataCols  '用表达式列计算库存数据
    .Add("优惠额度",Gettype(Double), "IsNull([优惠额度],0)")

    .Add("可减免张数",Gettype(Double), "IIF([星期]='星期六'or [星期]='星期天',65,60)")
    .Add("超张数",Gettype(Double), "IIF([折算张数]>[可减免张数],(IsNull([折算张数],0)-IsNull([可减免张数],0)),0)")
    .Add("超金额",Gettype(Double), "IsNull([超张数],0)*5")
    .Add("实际减免金额",Gettype(Double), "isnull([优惠额度],0) - ISNULL([超金额],0)")
    .Add("实际减免张数",Gettype(Double), "IIF([折算张数]>[可减免张数],[可减免张数],IsNull([折算张数],0))")

End With

With Tables("统计表c")
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
    .MergeCols.Add("年")
    .MergeCols.Add("月")
     .MergeCols.Add("星期")
    .MergeSort = "年,月,日,星期"
    .AllowMerge = True
End With

Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum 
g.GroupOn = "月"
g.TotalOn = "优惠额度,折算张数,超张数,超金额,实际减免金额,实际减免张数" 
g.Caption = "{0} 月小计" 
t.SubtotalGroups.Add(g)



g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "优惠额度,折算张数,超张数,超金额,实际减免金额,实际减免张数" 
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()
MainTable = t

'以下显示格式
Tables("统计表c").cols("优惠额度").DataCol.setFormat("#,###")
Tables("统计表c").cols("折算张数").DataCol.setFormat("#,###")
Tables("统计表c").cols("可减免张数").DataCol.setFormat("#,###")
Tables("统计表c").cols("超张数").DataCol.setFormat("#,###")
Tables("统计表c").cols("超金额").DataCol.setFormat("#,###")
Tables("统计表c").cols("实际减免金额").DataCol.setFormat("#,###")
Tables("统计表c").cols("实际减免张数").DataCol.setFormat("#,###")


Tables("统计表c").SetColVisibleWidth("年|80|月|25|日|25|星期|80|优惠额度|100|折算张数|80|可减免张数|80|超张数|50|超金额|50|实际减免金额|120|实际减免张数|50")




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


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

"统计表5还是"统计表c"?

去掉下面代码,重复了
bd1.Totals.AddDef("收支金额","优惠额度")

.Add("优惠额度",Gettype(Double), "IsNull([优惠额度],0)")

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2021/10/27 9:28:00 [只看该作者]

去掉后统计出来了,但是优惠额度还是正数,没换成负数

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


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

请上传实例说明

 回到顶部