以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  汇总统计的结果表,数值列如何四舍五入保留小数点后两位?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173820)

--  作者:guosheng
--  发布时间: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编辑过]

--  作者:飘过的巨蟹座
--  发布时间:2021/12/17 17:08:00
--  

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

--  作者:有点蓝
--  发布时间:2021/12/17 17:15:00
--  
b.Totals.AddExp("应收应缴税额","Round((应结转租金金额-应结转租金税额)*0.12,2)","截至" & s3 & "_应收计算应缴税")


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

--  作者:有点蓝
--  发布时间:2021/12/17 17:37:00
--  
b3.Totals.AddExp("开piao应缴税额","Case When  服务名称=\'场地租赁\' or 服务名称=\'房屋租金\' Then round(不含税金额,2) Else 0 End","截至" & s3 & "_开piao计算应缴税")
--  作者:guosheng
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2021/12/20 9:06:00
--  
表达式没有round2,只有round
--  作者:guosheng
--  发布时间:2021/12/20 9:10:00
--  

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

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

--  作者:有点蓝
--  发布时间:2021/12/20 9:14:00
--  
看错了,round这玩意只能用到sql里,1楼使用的是SQLGroupTableBuilder,是直接统计后台的可以使用。

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