Foxtable(狐表)用户栏目专家坐堂 → 请教垂直表和水平表的转换问题


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

主题:请教垂直表和水平表的转换问题

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


加好友 发短信
等级:二尾狐 帖子:535 积分:3897 威望:0 精华:0 注册:2018/1/3 16:03:00
请教垂直表和水平表的转换问题  发帖心情 Post By:2023/5/5 11:23:00 [只看该作者]

根据帮助文件,下来代码将垂直表转换成水平表。

Dim dtb As New DataTableBuilder("B")

dtb.AddDef("合同编号", GetType(String), 10)

dtb.AddDef("物料编号", GetType(String), 10)

For Each v As String In DataTables("物料表").GetValues("批次")

    dtb.AddDef(v, GetType(Double))

Next

dtb.Build()

For Each v As String() In DataTables("物料表").GetValues("合同编号|物料编号")

    Dim dr1 As DataRow = DataTables("B").AddNew()

    dr1("合同编号") = v(0)

    dr1("物料编号") = v(1)

    For Each dr2 As DataRow In DataTables ("物料表").Select("合同编号 = '" & v(0) & "' And 物料编号 = '" & v(1) & "'")

        dr1(dr2("批次")) = dr2("金额")

    '    dr1(dr2("批次")) = dr2("数量")

    Next

Next

'DataTables("B").DataCols.Add("总金额", GetType(Double), "[01] + [02] + [03] + [04] + [05]"……)

MainTable = Tables("B")

我的问题1是:水平方向的每一期下,有“数量”和“金额”,如“第01-数量”“ 01-金额”,上面的代码如何修改一下?

问题2:批次列中的期数不固定,总金额能用代码实现吗?

敬请蓝老师指导一下,谢谢!


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106561 积分:541970 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/5 11:31:00 [只看该作者]

表结构和数据截图看看

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


加好友 发短信
等级:二尾狐 帖子:535 积分:3897 威望:0 精华:0 注册:2018/1/3 16:03:00
  发帖心情 Post By:2023/5/5 12:27:00 [只看该作者]

蓝老师我做了一个表,请您看一下

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


加好友 发短信
等级:二尾狐 帖子:535 积分:3897 威望:0 精华:0 注册:2018/1/3 16:03:00
  发帖心情 Post By:2023/5/5 12:28:00 [只看该作者]

上传
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:水平转换.zip


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106561 积分:541970 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/5 13:42:00 [只看该作者]

参考这里示例四:http://www.foxtable.com/webhelp/topics/2394.htm。其实直接做个交叉统计即可

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:水平转换.zip



 回到顶部