以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  统计排序  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=79677)

--  作者:联友
--  发布时间:2016/1/7 10:43:00
--  统计排序

 Dim sql As String  = "Select  学期,教工姓名,学科, Count(学科) As 课时数  * {教师任课} WHERE  学期 = \'" & e.form.Controls("学期").text & "\'  GROUP BY 学期,教工姓名,学科"
   Dim b As New CrossTableBuilder("统计表1",sql, "数据库")
   b.HGroups.AddDef("学期")
   b.HGroups.AddDef("教工姓名")
   b.VGroups.AddDef("学科") \'添加产品列用于垂直分组
   b.Totals.AddDef("课时数")
   b.HorizontalTotal= True
   b.VerticalTotal = True
   Tables("课时统计_Table1").DataSource = b.BuildDataSource()

 

自动生成是这样的


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160107103841.png
图片点击可在新窗口打开查看

 

我想列按这样排序


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160107104126.png
图片点击可在新窗口打开查看

请指点,谢谢

[此贴子已经被作者于2016/1/7 10:43:45编辑过]

--  作者:大红袍
--  发布时间:2016/1/7 10:45:00
--  

不行,交叉统计无法指定排序,如果要处理,就必须生成以后,写一段代码移动列。

 

具体,你上次foxtable例子。


--  作者:大红袍
--  发布时间:2016/1/7 10:47:00
--  

不然,你就要用代码实现交叉统计功能

 

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

 


--  作者:联友
--  发布时间:2016/1/7 11:42:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:教师任课.zip


--  作者:大红袍
--  发布时间:2016/1/7 11:59:00
--  

If e.Form.Controls("学期").Value IsNot Nothing Then
 

 

 

 


    Tables("课时统计_Table1").DataSource = b.BuildDataSource()
    Dim dic As new Dictionary(Of String, String)
    For Each c As Col In Tables("课时统计_Table1").Cols
        dic.add(c.Caption, c.name)
    Next
    Dim str As String = "语文,数学,英语,科学,历史"
    Dim ary() As String = str.split(",")
    For i As Integer = ary.length-1 To 0 Step -1
        Tables("课时统计_Table1").Cols(dic(ary(i))).Move(2)
    Next
End If


--  作者:联友
--  发布时间:2016/1/13 10:26:00
--  
谢谢