Foxtable(狐表)用户栏目专家坐堂 → 汇总统计的结果表,数值列如何四舍五入保留小数点后两位?


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

主题:汇总统计的结果表,数值列如何四舍五入保留小数点后两位?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
汇总统计的结果表,数值列如何四舍五入保留小数点后两位?  发帖心情 Post By:2021/12/17 16:50:00 [只看该作者]


For i As Integer = 0 To Tables("统计表").Cols.Count - 1
If Tables("统计表").Cols(i).IsNumeric
  Tables("统计表").DataTable.DataCols(Tables("统计表").Cols(i).name).SetFormat("0.00")
End If
Next

直接 ctrl+c ,ctrl+v 相关的数据粘出来,小数点后依然是四位。
能不能在做汇总统计时,对结果进行四舍五入啊?

Dim b As New SQLGroupTableBuilder("统计表2","租赁项目结转明细表")
b.C
Dim dt1 As fxDataSource
b.AddTable("租赁项目结转明细表","合同编号","租赁合同结转情况表","合同编号") '添加统计表
b.Groups.AddDef("{租赁合同结转情况表}.合同编号") '添加客户列用于水平分组
b.Groups.AddDef("客户名称") '添加客户列用于水平分组
b.Totals.AddExp("不含税租金","应结转租金金额-应结转租金税额","截至" & s3 & "_应收不含税租金")
b.Totals.AddExp("应收应缴税额","(应结转租金金额-应结转租金税额)*0.12","截至" & s3 & "_应收计算应缴税")
b.filter=filter
dt1 = b.BuildDataSource()
[此贴子已经被作者于2021/12/17 16:56:57编辑过]

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


加好友 发短信
等级:幼狐 帖子:141 积分:1101 威望:0 精华:0 注册:2021/8/6 21:17:00
  发帖心情 Post By:2021/12/17 17:08:00 [只看该作者]


[此贴子已经被作者于2021/12/17 17:11:32编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

b.Totals.AddExp("应收应缴税额","Round((应结转租金金额-应结转租金税额)*0.12,2)","截至" & s3 & "_应收计算应缴税")


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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2021/12/17 17:22:00 [只看该作者]

case when 的该 如何套用round函数啊?
b3.Totals.AddExp("开piao应缴税额","round(Case When  服务名称='场地租赁' or 服务名称='房屋租金' Then 不含税金额 Else 0 End,2)","截至" & s3 & "_开piao计算应缴税")
我这样改了,也没报错。
[此贴子已经被作者于2021/12/17 17:26:16编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

b3.Totals.AddExp("开piao应缴税额","Case When  服务名称='场地租赁' or 服务名称='房屋租金' Then round(不含税金额,2) Else 0 End","截至" & s3 & "_开piao计算应缴税")

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2021/12/20 9:05:00 [只看该作者]

这个新增的列,用Round2四舍五入报错了,怎么改啊?
DataTables("统计表2").DataCols.Add("当期应缴税", Gettype(Double), "round2(IsNull([应收应缴税额],0)-IsNull([累计已缴税],0),2)")
[此贴子已经被作者于2021/12/20 9:05:23编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

表达式没有round2,只有round

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2021/12/20 9:10:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20211220090852.jpg
图片点击可在新窗口打开查看

改成round也报错啊。
DataTables("统计表2").DataCols.Add("当期应缴税", Gettype(Double), "round(IsNull([应收应缴税额],0)-IsNull([累计已缴税],0),2)")

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

看错了,round这玩意只能用到sql里,1楼使用的是SQLGroupTableBuilder,是直接统计后台的可以使用。

表达式列就用不了了,要使用这种方式:http://www.foxtable.com/webhelp/topics/0108.htm

 回到顶部