Foxtable(狐表)用户栏目专家坐堂 → 关于垂直表和水平表的转换


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

主题:关于垂直表和水平表的转换

帅哥,在线噢!
lgj716330
  41楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1304 积分:10081 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2018/6/21 17:00: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))
     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))
DataTables("表B").DataCols.Add("合计_同期金额",Gettype(Double))
Dim t As Table = Tables("表B")
Dim r As Row
For i As Integer = 0 To t.Rows.Count(True) - 1
    r = t.Rows(i,True)
     For Each v2 As String In DataTables("水平转换测试").GetValues("成本大类")
        r("合计_本期金额")=r(v2 & "_" & "本期金额")
Next
Next
MainTable = Tables("表B")

 

 当存在多个成本大类时, r("合计_本期金额")=r(v2 & "_" & "本期金额")只能合计到其中一个大类的值,如何才能合计到所有v2 & "_" & "本期金额"的值呢

[此贴子已经被作者于2018/6/21 17:00:46编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/21 17:40:00 [只看该作者]

改成

 

r("合计_本期金额") += r(v2 & "_" & "本期金额")


 回到顶部
总数 42 上一页 1 2 3 4 5