Foxtable(狐表)用户栏目专家坐堂 → [求助]请问狐表现在有“行转列”的功能吗?


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

主题:[求助]请问狐表现在有“行转列”的功能吗?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/22 10:17:00 [显示全部帖子]

可以的,之前论坛就做过一个这样的例子。

你自己搞不定的话,做个表,输几行数据,传上来,我帮你写下代码

 

[此贴子已经被作者于2011-5-22 10:17:06编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/22 11:14:00 [显示全部帖子]

在命令窗口执行下面的代码看看:

 

Dim dtb As New DataTableBuilder("表2")
dtb.AddDef("姓名", Gettype(String), 32)
For Each v As String In DataTables("学生成绩表").GetUniqueValues("","课程")
    dtb.AddDef(v, Gettype(Double))
Next
dtb.Build()
For Each v As String In DataTables("学生成绩表").GetUniqueValues("","姓名")
    Dim dr1 As DataRow = DataTables("表2").AddNew()
    dr1("姓名") = v
    For Each dr2 As DataRow In DataTables("学生成绩表").DataRows
        If dr2("姓名") = v Then
            dr1(dr2("课程")) = dr2("分数")
        End If
    Next
Next
MainTable = Tables("表2")


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/22 11:30:00 [显示全部帖子]

呵呵,还是你这段厉害,不过我的通用性强点,不管多少个科目,科目名称怎样,都不需要改代码。

 

图片点击可在新窗口打开查看

[此贴子已经被作者于2011-5-22 11:31:40编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/23 8:39:00 [显示全部帖子]

以下是引用ybil在2011-5-23 8:24:00的发言:
引用狐狸爸爸 011-5-22 11:31:40的发言:

呵呵,还是你这段厉害,不过我的通用性强点,不管多少个科目,科目名称怎样,都不需要改代码。


嘻嘻,学习6楼的方法,来个动态通用的:

Dim  s1,s2 As String
For Each s1 In DataTables("成绩库").GetUniqueValues("","课程")
    s2 = s2  & ",max(iif( 课程 = '" & s1 &"',分数 , 0)) AS " & s1
Next
s2 = "SELECT 姓名 " & s2 & " FROM {成绩库} GROUP BY 姓名"
Tables("窗口1_Table1").Fill(s2,True)

[此贴子已经被作者于2011-5-23 8:31:32编辑过]

 

呵呵,佩服。

图片点击可在新窗口打开查看


 回到顶部