Foxtable(狐表)用户栏目专家坐堂 → 从横表中提取数据转换为纵表


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

主题:从横表中提取数据转换为纵表

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
从横表中提取数据转换为纵表  发帖心情 Post By:2016/2/18 14:25:00 [只看该作者]

我在例子中有四个表,分别是科目余额汇总表、已审科目余额、已借方发生、已审贷方发生四张表,我的想法是自动生成科目余额表汇总表,数据分别来源于其他于三张表,在科目余额汇总中写了代码,例子的组合是提取科目余额汇总中所有列名,并且找到2011、2012、2013、2014四个年度,但是都是重复的,怎么才能提取为不重复的呢?即目前代码提取到的是2011、2011、2011、2012、2012、2013、2013、2013、2014、2014、2014,怎么能成为为2011、2012、2013、2014呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目9.foxdb


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/18 14:58:00 [只看该作者]

Dim ls As new List(Of String)
For Each dc As DataCol In DataTables("科目余额汇总").DataCols
    If dc.Name <> "科目编号" AndAlso dc.Name <> "科目名称" Then
        Dim s As String = dc.name.substring(2,4)
        If ls.Contains(s) = False Then
            ls.add(s)
        End If
    End If
Next
For Each s As String In ls
    output.show(s)
Next

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/18 15:47:00 [只看该作者]

判断某列是否存在,怎么写代码,写了以下代码可是不行

If e.DataCol.Caption("余额" & s & "年_借方发生") = True Then


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/18 15:50:00 [只看该作者]

 If e.DataTable.DataCols.Contains("列名") Then

 

 End If


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/18 16:33:00 [只看该作者]

e.DataRow(nm) = DataTables("科目余额表").Compute("sum("余额" & e.DataRow("会计年度") & "年_发生借方")","科目名称 = '" & nm & "'")

提示错误,是黄色部分的原因,应该怎么改


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/18 18:09:00 [只看该作者]

e.DataRow(nm) = DataTables("科目余额表").Compute("sum(余额" & e.DataRow("会计年度") & "年_发生借方)","科目名称 = '" & nm & "'")

 回到顶部