以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 从横表中提取数据转换为纵表 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=81092) |
||||
-- 作者:kaituozhe -- 发布时间: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呢?
|
||||
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2016/2/18 15:47:00 -- 判断某列是否存在,怎么写代码,写了以下代码可是不行 If e.DataCol.Caption("余额" & s & "年_借方发生") = True Then |
||||
-- 作者:大红袍 -- 发布时间:2016/2/18 15:50:00 -- If e.DataTable.DataCols.Contains("列名") Then
End If |
||||
-- 作者:kaituozhe -- 发布时间:2016/2/18 16:33:00 -- e.DataRow(nm) = DataTables("科目余额表").Compute("sum("余额" & e.DataRow("会计年度") & "年_发生借方")","科目名称 = \'" & nm & "\'") 提示错误,是黄色部分的原因,应该怎么改 |
||||
-- 作者:大红袍 -- 发布时间:2016/2/18 18:09:00 -- e.DataRow(nm) = DataTables("科目余额表").Compute("sum(余额" & e.DataRow("会计年度") & "年_发生借方)","科目名称 = \'" & nm & "\'") |