以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  急求助:行转列  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=64844)

--  作者:lin1221
--  发布时间:2015/3/3 14:57:00
--  急求助:行转列


问题:假设有张学生成绩表(cjb)如下, 想把行转换成列变作为一个独立表


姓名 语文 数学 物理 化学 生物 美术
李四 74   84   94      70     60   55
张三 74   83   93     21 40 99


想变成(得到如下结果): 
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93

张三 化学 21

张三 生物 40

张三 美术 99
李四 语文 74
李四 数学 84
李四 物理 94

李四 化学 70

李四 生物 60

李四 美术 55


请问这个要在哪个模块里面用代码能够实现


--  作者:Bin
--  发布时间:2015/3/3 14:58:00
--  

--  作者:lin1221
--  发布时间:2015/3/3 15:07:00
--  
这个模式不一样, 多了2个字段,求值是分数, 那个代码用了显示不出来
--  作者:有点甜
--  发布时间:2015/3/3 15:09:00
--  
  一样的意思,代码不会写的话,就做个例子上传上来。
--  作者:Bin
--  发布时间:2015/3/3 15:13:00
--  
直接先建立表2 

然后遍历表1

for each dr as datarow  in datatables("表1").datarows
   for each dc as datacol in datatables("表1").datacols
           if dc.name <> "姓名" then
          dim drr as datarow = datatables("表2").addnew
          drr("姓名")=dr("姓名")
          drr("课程")=dc.name
          drr("分数")=dr(dc.name)
          end if
   next
next

--  作者:lin1221
--  发布时间:2015/3/3 15:21:00
--  
已上传附件,请帮助
--  作者:lin1221
--  发布时间:2015/3/3 15:21:00
--  
FYI
--  作者:有点甜
--  发布时间:2015/3/3 15:22:00
--  
看5楼
--  作者:lin1221
--  发布时间:2015/3/3 15:22:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.table


--  作者:有点甜
--  发布时间:2015/3/3 15:25:00
--  
For Each dr As DataRow  In DataTables("成绩表").datarows
   For Each dc As DataCol In DataTables("成绩表").datacols
           If dc.name <> "名称" AndAlso dc.Name <> "性别" Then
          Dim drr As DataRow = DataTables("成绩明细表").addnew
          drr("名称")=dr("名称")
          drr("性别")=dr("性别")
          drr("科目")=dc.name
          drr("分数")=dr(dc.name)
          End If
   Next
Next