以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  统计表金额列数位太多  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171482)

--  作者:实话实说
--  发布时间:2021/8/31 19:51:00
--  统计表金额列数位太多

以下统计中,金额列以元位单位,数位太多,想以万元为单位,不要小数,如何处理?

 

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))
b.HGroups.AddDef("
客户") \'添加客户列用于水平分组
b.VGroups.AddDef("
产品") \'添加产品列用于垂直分组
b.Totals.AddDef("金额
") \'添加数量列用于统计
b.Build \'
生成统计表


--  作者:有点蓝
--  发布时间:2021/8/31 20:16:00
--  
Dim b As New sqlCrossTableBuilder("统计表1","订单")
b.HGroups.AddDef("客户"\'添加客户列用于水平分组
b.VGroups.AddDef("
产品"\'添加产品列用于垂直分组
b.Totals.AddExp("金额","金额 / 10000"
b.Build \'
生成统计表

--  作者:实话实说
--  发布时间:2021/8/31 21:17:00
--  
红色部分有问题
Dim cmd As New SQLCommand
        cmd.C
        cmd.CommandText = "Selec t * From {销售订单} Where 月 >= \'" & e.Form.Controls("起始月").Text & "\' And 月 <= \'" & e.Form.Controls("截止月").Text & "\'"
       
        Dim f As New SQLCrossTableBuilder("销售订单统计", cmd.ExecuteReader())
        f.HGroups.AddDef("客户简称")
        \'f.VGroups.AddDef("月", "订单金额_{0}")
        f.VGroups.AddDef("月", "{0}")
        f.Totals.AddDef("订单单号",AggregateEnum.Count,"订单数") 
        f.Totals.AddExp("金额合计", "订单金额 /10000")
        f.OrderByTotal = True
        f.HorizontalTotal = True \'水平合计
        f.VerticalTotal = True \'垂直合计
        f.Decimals = 0 \'保留的小数
        f.Build()

--  作者:有点蓝
--  发布时间:2021/8/31 21:26:00
--  
Dim f As New CrossTableBuilder("销售订单统计", "Selec t *,订单金额 /10000 as 金额合计 From {销售订单} Where 月 >= \'" & e.Form.Controls("起始月").Text & "\' And 月 <= \'" & e.Form.Controls("截止月").Text & "\'",“数据源名称”)
        f.HGroups.AddDef("客户简称")
        \'f.VGroups.AddDef("月", "订单金额_{0}")
        f.VGroups.AddDef("月", "{0}")
        f.Totals.AddDef("订单单号",AggregateEnum.Count,"订单数") 
        f.Totals.AddDef("金额合计")
        f.OrderByTotal = True
        f.HorizontalTotal = True \'水平合计
        f.VerticalTotal = True \'垂直合计
        f.Decimals = 0 \'保留的小数
        f.Build()


--  作者:实话实说
--  发布时间:2021/8/31 21:40:00
--  

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

--  作者:有点蓝
--  发布时间:2021/8/31 22:01:00
--  
dim s as string = "Select *,订单金额 /10000 as 金额合计 From {销售订单} Where 月 >= \'" & e.Form.Controls("起始月").Text & "\' And 月 <= \'" & e.Form.Controls("截止月").Text & "\'"

Dim f As New CrossTableBuilder("销售订单统计", s,“数据源名称”)

--  作者:实话实说
--  发布时间:2021/9/1 9:21:00
--  
还是没搞定。能否在生成统计表后用代码单独设置一下?
--  作者:有点蓝
--  发布时间:2021/9/1 9:37:00
--  
遍历所有行,金额列 / 10000咯

For Each dr As DataRow In dt.DataRows
    For Each dc As DataCol In dt.DataCols
        dr(dc.name) = dr(dc.name)  / 10000
    Next
Next