Foxtable(狐表)用户栏目专家坐堂 → 如何将某个表的所有行数据,全部按照字段列顺序,逐行拼接成一个整体内容呢?


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

主题:如何将某个表的所有行数据,全部按照字段列顺序,逐行拼接成一个整体内容呢?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
如何将某个表的所有行数据,全部按照字段列顺序,逐行拼接成一个整体内容呢?  发帖心情 Post By:2022/1/10 18:31:00 [只看该作者]

如何将某个表的所有行数据,全部按照字段列顺序,逐行拼接成一个整体内容呢?
当前《人员表》有如下五个字段,怎么实现按照这个五个字段的顺序拼接后,再将当前表中所有行数据进行拼接,形成一个整体的字符呢?

图片点击可在新窗口打开查看

如:第一行  张三   身份证   52725   QQ号   女生
      第二行  李四   户口簿   62272   微信号   男生
       第三行  不祥   不祥  不祥        
……
拼接成  张三 ,身份证,52725,QQ号,女生;李四,户口簿,62272,微信号,男生;不祥,不祥,【注意为空的不显示值和,号】

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/1/10 18:36:00 [只看该作者]

遍历所有行!

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
  发帖心情 Post By:2022/1/10 18:56:00 [只看该作者]

根据程老师的提示  通过如下操作实现了遍历所有的行  所有的列名下值  但是拼接没有达到预期目标,请教各位老师!
怎么按照一楼的方式进行拼接呢?与输出呢?

For Each r As Row In Tables("报告明细")
    For Each r1 As Col In Tables("报告明细").Cols
        Dim s As String
        'output.show(r(r1.DataCol.Name))
        s = r(r1.DataCol.Name)
        s= s  & "," & s
        output.show(s)
    Next
Next

图片点击可在新窗口打开查看

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


加好友 发短信
等级:三尾狐 帖子:649 积分:5730 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2022/1/10 19:15:00 [只看该作者]

用集合,转为数组后用join
http://www.foxtable.com/webhelp/topics/1423.htm

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
  发帖心情 Post By:2022/1/10 19:54:00 [只看该作者]

根据楼上的提示  
当前代码如下:
Dim s As String =""
'定义数组集合的时候,要在类型后加上括号,表示这是一个数组集合.
Dim Arys As List(Of String())
Arys = DataTables("报告明细").GetUniqueValues("", "对象姓名","证件种类","证件号码","目标或特定信息","备注")
'注意循环变量是字符型数组,所以类型是String(),而不是String
For Each Ary As String() In Arys
    'Output.Show(Ary(0) & "," & Ary(1) & "," & Ary(2) & "," & Ary(3) & "," & Ary(4) )
    s=Ary(0) & "," & Ary(1) & "," & Ary(2) & "," & Ary(3) & "," & Ary(4)
    s &= ";" 
    output.show(s)
Next

运行提示图:
图片点击可在新窗口打开查看
怎么实现判断空值的话 直接不显示,如输出结果就直接显示为不祥,不祥,不祥;就完成了 
 因为数据是两行  那是否可以 怎么显示对应的行数序号呢?  
如:1,,,,;2,不祥,不祥,不祥;



效果2:
代码:
Dim s As String =""
Dim s1 As String =""
'定义数组集合的时候,要在类型后加上括号,表示这是一个数组集合.
Dim Arys As List(Of String())
'Arys = DataTables("报告明细").GetUniqueValues("编号='" & vars("编号") & "'", "对象姓名","证件种类","证件号码","目标或特定信息","备注")
Arys = DataTables("报告明细").GetUniqueValues("", "对象姓名","证件种类","证件号码","目标或特定信息","备注")
'注意循环变量是字符型数组,所以类型是String(),而不是String
For Each Ary As String() In Arys
    
    s1 = String.Join(",", Ary)
    s1 = s1 & ";"
    output.show(s1)
Next
运行结果如图:得到的结果是一样的
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/1/10 20:06:03编辑过]

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/10 20:10:00 [只看该作者]

        Dim s As String
For Each r As Row In Tables("报告明细").rows
s = s & vbcrlf
    For Each r1 As Col In Tables("报告明细").Cols
        s= s  & "," & r(r1.DataCol.Name)

    Next
Next
        output.show(s)


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


加好友 发短信
等级:三尾狐 帖子:649 积分:5730 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2022/1/10 20:11:00 [只看该作者]


试试这个Dim Names As New List(Of String)

Dim Names2 As New List(Of String)
For Each r As Row In Tables("报告明细")
Names.clear
    For Each r1 As Col In Tables("报告明细").Cols
        Dim s As String
        
        s = r(r1.DataCol.Name)
        if s<>"" then
Names.add(s)
end if
        
    Next
Names2.add(string.join(",",Names.toarray))
Next
msgbox(string.join(";",Names2.toarray))
[此贴子已经被作者于2022/1/10 20:11:46编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)        Dim s ...  发帖心情 Post By:2022/1/10 20:23:00 [只看该作者]

图片点击可在新窗口打开查看
老师  输出得到的和楼上的代码一样   没有连成一个完整的字符串  而是根据行数  生成了对应的三行  
想实现不管有多少行,都组合成一行字符串,且在现有三行数据的每一行前面加上一个序号,1、……2、……3、……

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(liufucan)试试这个Dim Names As New List(Of...  发帖心情 Post By:2022/1/10 20:27:00 [只看该作者]

老师好   运行如图:
图片点击可在新窗口打开查看
有没有办法取消红色圈的部分的断行操作呢?直接将所有的结果都输入为一个完整的字符串 不需要中途换行

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/10 20:42:00 [只看该作者]

6楼代码去掉s = s & vbcrlf

 回到顶部
总数 19 1 2 下一页