Foxtable(狐表)用户栏目专家坐堂 → 后台统计


  共有15810人关注过本帖树形打印复制链接

主题:后台统计

帅哥哟,离线,有人找我吗?
lihe60
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
后台统计  发帖心情 Post By:2009/12/18 12:15:00 [只看该作者]

请教如何根据表A的数据,从后台取数,生成表B样式的统计表?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/18 14:13:00 [只看该作者]

看不懂。

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2009/12/18 14:41:00 [只看该作者]

我就从前台取数吧。

 回到顶部
帅哥哟,离线,有人找我吗?
xl
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2009/12/18 15:00:00 [只看该作者]

你说的是行列互换吧?阿翔有一个设计:


班级 语文 数学 英语
王文海 刘某 刘大
刘海明 密码 立法
施亚明 大道 方法


转换以后就是

科目
语文 王文海 刘海明 施亚明
数学 刘某 密码 大道
英语 刘大 立法 方法


        Dim dtb As New DataTableBuilder("ls")
        dtb.AddDef("科目", GetType(String), 255)
        For i As Integer = 0 To Tables("表A").Count - 1
            Dim lm As String = Tables("表A").Value(i, 0)
            dtb.AddDef(lm, GetType(String), 255)
        Next
        dtb.Build()
        Tables("ls").Rows.AddNew(Tables("表A").Cols.Count - 1)

        For j As Integer = 0 To Tables("表A").Cols.Count - 2
            Tables("ls").Value(j, 0) = Tables("表A").Cols(j + 1).Name
        Next

        For p As Integer = 1 To Tables("表A").Cols.Count - 1
            For q As Integer = 1 To Tables("表A").Rows.Count
                Tables("ls").Value(p - 1, q) = Tables("表A").Value(q - 1, p)
            Next
        Next


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/18 15:37:00 [只看该作者]

这种框架统计效率太低了吧?

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("姓名", GetType(String),10)
Dim Kms As List(Of String) = DataTables("表A").GetUniqueValues("[科目] Is Not Null", "科目")
For Each Km As String In Kms
    dtb.AddDef(Km, GetType(Integer))
Next
dtb.Build()
Dim Names As List(Of String) = DataTables("表A").GetUniqueValues("[姓名] Is Not Null", "姓名")
For Each Name As String In Names
    Dim dr As DataRow = DataTables("统计").AddNew()
    dr("姓名") = Name
Next
For Each Km As String In Kms
    For Each dr As DataRow In DataTables("统计").DataRows
        dr(Km) = DataTables("表A").Compute("Sum(金额)","[姓名] = '" & dr("姓名") & "' And [科目] = '" & Km & "'")
    Next
Next
MainTable = Tables("统计")

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/18 15:41:00 [只看该作者]

楼上是前台统计,如果要从后台统计最好从用SQLCommand生成一个临时表,然后从临时表中进行统计.

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/18 15:43:00 [只看该作者]

以下是引用xl在2009-12-18 15:00:00的发言:
你说的是行列互换吧?阿翔有一个设计:


班级 语文 数学 英语
王文海 刘某 刘大
刘海明 密码 立法
施亚明 大道 方法


转换以后就是

科目
语文 王文海 刘海明 施亚明
数学 刘某 密码 大道
英语 刘大 立法 方法


        Dim dtb As New DataTableBuilder("ls")
        dtb.AddDef("科目", GetType(String), 255)
        For i As Integer = 0 To Tables("表A").Count - 1
            Dim lm As String = Tables("表A").Value(i, 0)
            dtb.AddDef(lm, GetType(String), 255)
        Next
        dtb.Build()
        Tables("ls").Rows.AddNew(Tables("表A").Cols.Count - 1)

        For j As Integer = 0 To Tables("表A").Cols.Count - 2
            Tables("ls").Value(j, 0) = Tables("表A").Cols(j + 1).Name
        Next

        For p As Integer = 1 To Tables("表A").Cols.Count - 1
            For q As Integer = 1 To Tables("表A").Rows.Count
                Tables("ls").Value(p - 1, q) = Tables("表A").Value(q - 1, p)
            Next
        Next


这个代码应该有问题吧?
假设班级有重复内容,有空行,好象会出错的(没测试,只是凭感觉)。

[此贴子已经被作者于2009-12-18 15:45:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2009/12/18 16:12:00 [只看该作者]

以下是引用czy在2009-12-18 15:41:00的发言:
楼上是前台统计,如果要从后台统计最好从用SQLCommand生成一个临时表,然后从临时表中进行统计.

先生成一个临时表,再统计,这又成了在前台统计。


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2009/12/18 16:13:00 [只看该作者]

以下是引用czy在2009-12-18 15:41:00的发言:
楼上是前台统计,如果要从后台统计最好从用SQLCommand生成一个临时表,然后从临时表中进行统计.

我说的不是互换,是从后面直接统计。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/18 16:38:00 [只看该作者]

以下是引用lihe60在2009-12-18 16:13:00的发言:

我说的不是互换,是从后面直接统计。

除非先做好统计表的框架否则很难达到吧。


 回到顶部
总数 13 1 2 下一页