以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教垂直表和水平表的转换问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186460)

--  作者:13315253800
--  发布时间: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:批次列中的期数不固定,总金额能用代码实现吗?

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


--  作者:有点蓝
--  发布时间:2023/5/5 11:31:00
--  
表结构和数据截图看看
--  作者:13315253800
--  发布时间:2023/5/5 12:27:00
--  
蓝老师我做了一个表,请您看一下
--  作者:13315253800
--  发布时间:2023/5/5 12:28:00
--  
上传
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:水平转换.zip


--  作者:有点蓝
--  发布时间:2023/5/5 13:42:00
--  
参考这里示例四:http://www.foxtable.com/webhelp/topics/2394.htm。其实直接做个交叉统计即可

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