Foxtable(狐表)用户栏目专家坐堂 → 交叉统计请教


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

主题:交叉统计请教

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/18 19:04:00 [只看该作者]

代码

 

Dim c1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim c2 As WinForm.ComboBox = e.Form.Controls("ComboBox2")

Dim sid As Integer
Dim eid As Integer

If c1.Text = Nothing Then
    sid = 1
Else
    sid = val(c1.Text)
End If

If c2.Text = Nothing Then
    eid = 12
Else
    eid = val(c2.Text)
End If

DataTables("表C").DataRows.Clear
Dim cvstr As String = "姓名|98"
For Each name As String In DataTables("表A").GetValues("姓名", "", "_Sortkey")
    Dim ndr As DataRow = DataTables("表C").AddNew
    ndr("姓名") = name
   
    For i As Integer = sid To eid
        Dim filter As String = "月份 = '" & i & "' and 姓名 = '" & name & "'"
        ndr("月" & i) = DataTables("表A").Compute("sum(月工资)", filter)
       
    Next
Next

For i As Integer = sid To eid
    cvstr &= "|月" & i & "|98"
Next

e.Form.Controls("Table1").Table.SetColVisibleWidth(cvstr)


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


加好友 发短信
等级:狐神 帖子:5054 积分:13037 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/8/18 19:41:00 [只看该作者]

甜大师:讨教一下,为何您写的代码高效简单,您学狐表究竟多长时间?我来看看我的智商是否适合学狐表,本人买开发版快一年了,目前还是121,121,究竟为何?

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


加好友 发短信
等级:狐神 帖子:5054 积分:13037 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/8/18 20:21:00 [只看该作者]

继续请教:两个问题:
1、如上例,表c能否改用临时表,先设计好表好,还是用临时表好?
2、如何再动态增加一列来进行动态合计

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/18 20:24:00 [只看该作者]

1、可以用临时表,临时表好一些;

 

2、你可以加入一列表达式列,设计好公式合计即可 isnull(月1,0) + isnull(月2,0) + isnull(月3,0)


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


加好友 发短信
等级:狐神 帖子:5054 积分:13037 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/8/18 20:30:00 [只看该作者]

求东方不败学狐表的葵花宝典

 回到顶部
总数 15 上一页 1 2