以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  行列转换及交叉统计  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=137028)

--  作者:happyft
--  发布时间:2019/6/26 17:37:00
--  行列转换及交叉统计

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

上面的表的数据要显示为下方的样式,是不是必须先把行转换为列后再进行交叉统计?

谢谢!

--  作者:有点甜
--  发布时间:2019/6/26 17:44:00
--  

你可以自己控制生成交叉统计表

 

http://www.foxtable.com/webhelp/topics/2394.htm

 

 


--  作者:HappyFt
--  发布时间:2019/6/26 19:28:00
--  
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("产品", Gettype(String), 16)
dtb.AddDef("客户", Gettype(String), 16)
Dim prds As List(of String) = DataTables("订单").GetValues("日期")
For Each prd As String In prds
    dtb.AddDef(prd, Gettype(Double))
Next
dtb.Build()
当用每一个日期新增列时,,有个问题
上面日期列值显示为2019-01-01 00:00:00, 2019-01-02 00:00:00,2019-01-03 00:00:00  ........
日期列标题按年,月,周,日像1楼那样的标题显示,红色的部份要如何写?
谢谢!




--  作者:有点甜
--  发布时间:2019/6/26 21:45:00
--  
dtb.AddDef(format(cdate(prd), "yyyy年_MM月_dd日"), Gettype(Double))
--  作者:HappyFt
--  发布时间:2019/6/28 21:37:00
--  

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


交叉统计中用如下代码将日期显示成年月周日的形式了
 b.VGroups.AddDef("交货日期",DateGroupEnum.Year,"{0}年") \'添加产品列用于垂直分组,并设置了Pattern参数
    b.VGroups.AddDef("交货日期",DateGroupEnum.Month,"{0}月") \'添加产品列用于垂直分组,并设置了Pattern参数
    b.VGroups.AddDef("交货日期",DateGroupEnum.Week,"{0}周") \'添加产品列用于垂直分组,并设置了Pattern参数
    b.VGroups.AddDef("交货日期",DateGroupEnum.Day,"{0}日") \'添加产品列用于垂直分组,并设置了Pattern参数
    b.Totals.AddDef("数量") \'添加数量列用于统计

现在有个问题,当鼠标选中每个单元格后,要根据所选的这一列的实际日期值来提取其他数据,比如上图中的选中列的日期是 2019-06-25
如何得到这个值,也就是当前日期列的值,用colsel显示出来列名是"数量_25"这样了,不对?
谢谢!



--  作者:有点蓝
--  发布时间:2019/6/28 21:48:00
--  
遍历统计表的列,把列名和列标题放到字典中,以列标题做键。需要的时候根据列标题得到对应的列名
--  作者:蓝色海洋2
--  发布时间:2020/1/16 14:14:00
--  
我的经验,先输出为wps表格,在wps表格中复制要行列转换的内容,然后在需要横排显示的地方点击鼠标右键,选择“选择性粘贴”勾选“转置”确定。