Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
直接用交叉统计就可生成.
问题是交叉统计并不能生成我想要的表的结构,比如有此所统计的数据中不会五种产品都有,交叉统计表也就不会出现相对应的列,
做个例子上来,包括:原始表(包含一定数据行) 和 要生成的交叉统计表的结构。。。。。。。。
由产品表生成统计表,注意一点是,产品表中并未出现过产品C,但要求统计表有这一列
另:希望统计结果是针对筛选结果也可以进行,不是针对全表数据
谢谢大家
下载信息 [文件大小: 下载次数: ] | |
点击浏览该文件:管理项目1.table |
楼主要在统计表中固定一些列,来达到统计的结果。也不知道筛选后会有几个产品被筛选出来的~
楼主你在“产品表”做个按钮,在你筛选完后(要排除重复内容),点击这个按钮 代码: 试一试吧
(注意:与数字计算有关的列要改为整数型(或其他数字型),统计表中产品A的列名为‘A ’,列标题为‘产品A’,其他列亦同)
DataTables("统计表").DataRows.Clear()
for i as Integer = 0 to tables("产品表").count -1
Dim dr As DataRow
dr = DataTables("统计表").AddNew()
dr("医生") = currenttable(i,"医生")
next
MainTable = Tables("统计表")
for i as Integer = 0 to tables("统计表").count -1
For Each cl As Col In tables("统计表").Cols
if cl.name <> "日期" and cl.name <> "医生"
currenttable(i,cl.name)= DataTables("产品表").Compute("Sum(数量)", "产品 = '" & cl.name & "'and 医生 = '" & currenttable(i,"医生") & "' ")
end if
Next
Next
哦,明白了。
没有办法的,只能先用交叉统计,然后对于那些没有出现的产品,用代码增加对应的列。
利用Add方法,可以增加临时列,并可给临时列设置表达式。
通过代码增加的临时列,在重新打开项目文件后,将不复存在。
Add方法的语法为:
Add(Name, GetType(Type))
Add(Name, GetType(Type), Expression)
参数说明:
例如:
DataTables(
"订单").DataCols.Add("金额", GetType(Double), "[数量] * [单价] * (1 - [折扣])")