以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  统计数据格式问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68248)

--  作者:utcxray
--  发布时间:2015/5/13 11:05:00
--  统计数据格式问题
代码如下:
Dim d As Date = new Date(Date.Today.year, 1, 1)
Dim b As New SQLCrossTableBuilder("统计表3","采购明细")
b.C

b.HGroups.AddDef("供应商") \'添加客户列用于水平分组

b.VGroups.AddDef("账期",DateGroupEnum.Year,"{0}年") \'添加日期列用于垂直分组,按年分组
b.VGroups.AddDef("账期","{0}月") \'添加日期列用于垂直分组

b.Totals.AddExp("应付","数量 * 单价")
b.Totals.AddExp("已付","付款")
b.Totals.AddExp("未付","数量 * 单价 - IsNull(付款, 0)")
b.Subtotal = True \'生成汇总模式
b.VerticalTotal= True
b.HorizontalTotal = True
b.filter="账期 >= \'" & d & "\' and 账期 < \'" & d.AddYears(1) & "\'"

Tables("应付分析_Table1").DataSource = b.BuildDataSource()
With Tables("应付分析_Table1")
.autosizeCols()
End With
CurrentTable.Cols.Frozen = 2
结果如图:
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

问题:
1、图中数据如何才能显示为按1‘000’000.00这样的格式。
2、图中合计未付为0的不显示,如何才能做到。


--  作者:Bin
--  发布时间:2015/5/13 11:07:00
--  
http://www.foxtable.com/help/topics/1659.htm

.SetFormat("0,000.00")

--  作者:大红袍
--  发布时间:2015/5/13 11:10:00
--  

1、什么意思?你可以设置每一列的格式,用SetFormat

 

 或者是循环每一个单元格,然后,其值;

 

2、需要你循环每一单元格,判断是否未0值,然后设置成nothing


--  作者:utcxray
--  发布时间:2015/5/20 17:52:00
--  
With Tables("应付分析_Table1")
.autosizeCols()
.filter="合计_未付>0"
End With
这解决了合计结果中未付是0的都不显示的问题

--  作者:大红袍
--  发布时间:2015/5/20 17:57:00
--  
 汗,但是你这样隐藏了其它列不为0的数据啊
--  作者:utcxray
--  发布时间:2015/5/20 18:05:00
--  
大红袍?With Tables("应付分析_Table1")
.autosizeCols()
.filter="合计_未付>0"
End With

.filter="合计_未付>0"  应该是合计_未付=0的都不显示吧,合计_未付这是统计表中的合计字段,那剩下的都是未付不是0的。????

[此贴子已经被作者于2015/5/20 18:16:17编辑过]

--  作者:utcxray
--  发布时间:2015/5/20 18:17:00
--  
请看图
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2015/5/20 19:10:00
--  
 如果能实现你的功能,怎么做都可以。