Foxtable(狐表)用户栏目专家坐堂 → 转置


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

主题:转置

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
转置  发帖心情 Post By:2021/2/20 13:51:00 [只看该作者]

跟帮助的垂直表和水平表的转换有所不同,下图所示,怎么处理?

图片点击可在新窗口打开查看此主题相关图片如下:a29f91d1-eab8-447e-af09-4839a3c59c09.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/20 14:14:00 [只看该作者]

逻辑基本一样

Dim dtb As New DataTableBuilder("B")
dtb.AddDef(
"类型"Gettype(String), 32)
For Each 
v As String In DataTables("A").GetValues("平台名称")
    
dtb.AddDef(v, Gettype(string))
Next

dtb.Build()

For Each 
c As datacol In DataTables("A").datacols
if c.name <> "平台名称"
    Dim dr1 As DataRow = DataTables("B").AddNew()
    dr1(
"类型") = dc.name
    
For Each dr2 As DataRow In DataTables("A").datarows
       dr1(dr2("平台名称")) = dr2(dc.name)
    
Next
end if
Next
MainTable = Tables(
"表B")

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2021/2/20 14:30:00 [只看该作者]

提示dc.name处dc未定义,改为c.name也没有数据呢
[此贴子已经被作者于2021/2/20 14:35:33编辑过]

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/20 14:34:00 [只看该作者]

c.name

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2021/2/20 14:38:00 [只看该作者]

改为c.name也没有数据呢
图片点击可在新窗口打开查看此主题相关图片如下:db588dab-0097-4cb1-be92-2b5d3e990df7.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/20 14:45:00 [只看该作者]

请上传实例说明

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2021/2/22 11:49:00 [只看该作者]

调试好了,有数据了
For Each c As DataCol In DataTables("业绩分析").datacols
    If c.name <> "平台店铺名称"
        Dim dr1 As DataRow = DataTables("横向业绩分析").AddNew()
        dr1("类型") = c.name
        For Each dr2 As DataRow In DataTables("业绩分析").datarows
            dr1(dr2("平台店铺名称")) = dr2(c.name)
        Next
    End If
Next
Dim ta As Table = Forms("业绩分析").Controls("Table1").Table
ta.datasource = DataTables("横向业绩分析")
我想生成的横向数据是按月销售金额依次排列,要怎么修改。

图片点击可在新窗口打开查看此主题相关图片如下:31438d4f-6ae2-4183-be74-070a77a351d0.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/2/22 11:50:42编辑过]

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/22 12:03:00 [只看该作者]

For Each dr2 As DataRow In DataTables("业绩分析").datarows

改为

For Each dr2 As DataRow In DataTables("业绩分析").select("","月销售金额")

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2021/2/22 13:15:00 [只看该作者]

顺序没有发生改变

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/22 13:38:00 [只看该作者]

嗯,列顺序是固定的。生成列名的时候就要排序了

Dim dtb As New DataTableBuilder("B")
dtb.AddDef(
"类型"Gettype(String), 32)
For Each 
v As String In DataTables("A").GetValues("平台名称","","月销售金额")
    dtb.AddDef(v, Gettype(string))
Next

dtb.Build()

 回到顶部