Foxtable(狐表)用户栏目专家坐堂 → [求助]狐爸求助。交叉表转换。


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

主题:[求助]狐爸求助。交叉表转换。

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
[求助]狐爸求助。交叉表转换。  发帖心情 Post By:2012/11/18 16:30:00 [显示全部帖子]


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

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

 

请问:

1.如何把表A转换成表B,帮助上的例子我看了,能力有限,多个垂直列的就不会了。

2.如何把表B修改过的数据存到表A里面呢?

期待解答

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.foxdb


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/18 17:22:00 [显示全部帖子]

非常感谢。

唐兄。这么写是没问题。我想要一个通用一点的。

类似狐表的交叉表生成器那样的代码。

[此贴子已经被作者于2012-11-18 17:23:53编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/18 20:23:00 [显示全部帖子]

这个表并不是要统计数据,统计的话直接用交叉表统计就行了

 

有两个目的,

1.是数据表转换为交叉表

2.在交叉表中方便的编辑数据,然后还能保存的数据表中

          


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/18 21:00:00 [显示全部帖子]

嗯 谢谢c版 确实要的不是统计

而是表的形式转换


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/18 21:17:00 [显示全部帖子]

用交叉表的问题是,如果分数列是字符串的话 就没办法了

 

 


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/18 21:19:00 [显示全部帖子]

帮助里面有一个例子 是单层的表头

http://www.foxtable.com/help/topics/0679.htm 请参考


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/18 23:27:00 [显示全部帖子]

曹版后来给写了段代码是可以了

Dim dtb As New DataTableBuilder("成绩表")
dtb.AddDef("姓名", Gettype(String), 32)
Dim prds As List(of String()) = DataTables("表A").GetUniqueValues("","分类","阶段","课程")
For Each prd As String() In prds
    If DataTables("表A").DataCols("分数").IsNumeric
        dtb.AddDef(prd(0) & "_" & prd(1) & "_" & prd(2), Gettype(Integer))
    Else
        dtb.AddDef(prd(0) & "_" & prd(1) & "_" & prd(2), Gettype(String), 32)
    End If
Next
dtb.Build()

For Each Name As String In DataTables("表A").GetComboListString("姓名").Split("|")
    Dim r As Row = Tables("成绩表").AddNew
    r("姓名") = name
    Dim Arys As List(Of String()) = DataTables("表A").GetUniqueValues("姓名 = '" & name & "'","分类","阶段","课程","分数")
    For Each Ary As String() In Arys
        r(Ary(0) & "_" & Ary(1) & "_" & Ary(2)) = Ary(3)
    Next
Next
MainTable= Tables("成绩表")

 

 

上面的代码DataTables("表A").GetUniqueValues("","分类","阶段","课程")

红色部分没办法动态生成,只能硬编码吗?


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/19 9:37:00 [显示全部帖子]

谢谢老大 如果是有四个的话,哪不是要定义四个变量吗?

这样还不是硬编码了吗?


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/19 9:57:00 [显示全部帖子]

小林介绍一下第二种方法


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/19 10:05:00 [显示全部帖子]

明白了,谢谢
[此贴子已经被作者于2012-11-19 10:05:44编辑过]

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