以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  基本数据整理之竖表转横标!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102772)

--  作者:bootes29
--  发布时间:2017/6/25 16:15:00
--  基本数据整理之竖表转横标!
各位老师,周末我又来打扰各位了!
很多传统工作用的表格不规范,不标准,第一步把传统数据导入,然后标准化这很重要。
下图,就是传统的行程导入后的表a,我想把他转成表b,
我对基本的循环输入的语句感到还是很难,有请各位大师不吝指教!
图片点击可在新窗口打开查看此主题相关图片如下:未标题-122 拷贝.jpg
图片点击可在新窗口打开查看

--  作者:bootes29
--  发布时间:2017/6/25 16:16:00
--  
这是table
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:行程录入.table


--  作者:bootes29
--  发布时间:2017/6/25 16:35:00
--  
http://www.foxtable.com/webhelp/index.htm?page=2965.htm
http://www.foxtable.com/help/index.htm?page=0679.htm
这两个例子,我已看,感觉还是不同

--  作者:有点色
--  发布时间:2017/6/25 17:34:00
--  
Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
Dim ndr As DataRow = dt2.AddNew
ndr("线路编号名称") = dt1.DataRows(0)("大类")
Dim str As String = ""
For Each dr As DataRow In dt1.Select("大类 = \'行程特色\'")
    str &= dr("第一列") & vbcrlf
Next
ndr("行程特色") = str
For i As Integer = 1 To 8
    str = ""
    For Each dr As DataRow In dt1.Select("大类 = \'第" & i & "天\'")
        str &= dr("第一列") & " " & dr("第四列") & " " & dr("第六列") & vbcrlf
    Next
    ndr("第" & i & "天") = str
Next
   

--  作者:bootes29
--  发布时间:2017/6/25 17:51:00
--  
崇拜的眼神!感谢老师每次都不厌其烦的指导。
我想破脑袋,老师却只要寥寥数语,这就是差距!

--  作者:bootes29
--  发布时间:2017/6/25 18:04:00
--  
@有点色 老师 后面难道有多少列,就需要定义多少个str吗?
Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
Dim ndr As DataRow = dt2.AddNew
ndr("线路编号名称") = dt1.DataRows(0)("大类")
Dim str As String = ""
Dim str1 As String = ""
Dim str2 As String = ""
Dim str3 As String = ""
Dim str4 As String = ""
Dim str5 As String = ""

For Each dr As DataRow In dt1.Select("大类 = \'行程特色\'")
    str &= dr("第一列") & vbcrlf
Next
ndr("行程特色") = str

For Each dr As DataRow In dt1.Select("大类 = \'报名须知\'")
    str1 &= dr("第一列") & vbcrlf
Next
ndr("报名须知") = str1

For Each dr As DataRow In dt1.Select("大类 = \'住宿标准\'")
    str2 &= dr("第一列") & vbcrlf
Next
ndr("住宿标准") = str2

For Each dr As DataRow In dt1.Select("大类 = \'旅游交通\'")
    str3 &= dr("第一列") & vbcrlf
Next
ndr("旅游交通") = str3

For Each dr As DataRow In dt1.Select("大类 = \'用餐标准\'")
    str4 &= dr("第一列") & vbcrlf
Next
ndr("用餐标准") = str4



--  作者:有点色
--  发布时间:2017/6/25 18:31:00
--  

 如果代码一样,可以写成循环

 

Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
Dim ndr As DataRow = dt2.AddNew
ndr("线路编号名称") = dt1.DataRows(0)("大类")
Dim str As String = ""
Dim ary() As String = {"行程特色", "报名须知", "住宿标准", "旅游交通", "用餐标准"}
For Each s As String In ary

    str = ""
    For Each dr As DataRow In dt1.Select("大类 = \'" & s & "\'")
        str &= dr("第一列") & vbcrlf
    Next
    ndr(s) = str
Next

[此贴子已经被作者于2017/6/25 18:31:21编辑过]

--  作者:bootes29
--  发布时间:2017/6/25 19:59:00
--  
原来如此,我写了40行。
太感谢了,有点色 老师早点休息!