以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何把子表同一列的字符串连接起来  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104791)

--  作者:zyl19810322
--  发布时间:2017/8/5 7:44:00
--  [求助]如何把子表同一列的字符串连接起来
比如主表A列一个空格=对应子表B列所有字符串连接起来,并用逗号隔开?
或者在输出到word的时候能够按字样的方式输出子表的B列所有字符串也行(更好)

--  作者:有点蓝
--  发布时间:2017/8/5 8:58:00
--  
没看懂你的问题,请截图说明


--  作者:zyl19810322
--  发布时间:2017/8/5 9:41:00
--  
表A为父表,表B为子表,关联列为编号
表A中“汇总A”和表B中“分项A”为逻辑类型,希望实现所有编号为1的分项A进行逻辑“或”,在汇总A中返回结果
表A中“字符串连接“和表B中”字符串分项”为备注类型,希望实现所有编号为1的“字符串分项”连接在一起,用逗号分开,在父表表A中的“字符串连接”中显示。
具体要如何实现呢?
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2017/8/5 9:58:00
--  
参考:http://www.foxtable.com/webhelp/scr/1472.htm


--  作者:zyl19810322
--  发布时间:2017/8/5 11:09:00
--  
不能有逗号分隔吗?
--  作者:有点蓝
--  发布时间:2017/8/5 11:25:00
--  
替换一下就行了


dim s as string = "a|b|c"
Output.Show(s.Replace("|",","))

--  作者:zyl19810322
--  发布时间:2017/8/5 11:34:00
--  
好复杂,有没有更简单的,还是我想复杂了?我最终的想法其实是在word模板中套用,由于子表的引用只能按列和行号来,所有才想到这个笨办法,但是这么看来也太复杂了
还是刚在的那个表,我在生成word模板的时候,可以用什么方法,在word里生产将“字符串分项”连起来的办法吗?字符串分项的数量是不定的,所以没办法确定行号

--  作者:有点蓝
--  发布时间:2017/8/5 11:51:00
--  
不复杂,也就10句左右代码的事,动手做吧。光想是没有用的。

表B,datacolchanged

Select Case e.DataCol.Name
    Case "编号","分项A","字符串分项"
        Dim dr As DataRow = DataTables("表A").Find("编号 = \'" & e.DataRow("编号") & "\'")
        If dr IsNot Nothing Then
            dr("字符串连接") = e.DataTable.GetComboListString("字符串分项","编号 = \'" & e.DataRow("编号") & "\'").Replace("|",",")
            dr("汇总A") = e.DataTable.Compute("Count(编号)"," 编号= \'" & e.DataRow("编号") & "\' and 分项A = true") > 0
        End If
End Select