以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]引用不同表数据、替换、合并字符串 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=109753) |
-- 作者:zcgmxf -- 发布时间:2017/11/18 17:20:00 -- [求助]引用不同表数据、替换、合并字符串 老师,如何在编辑表A的“危害因素”时,将表B危害因素的对应体检项目,去掉重复值合并到表A的体检项目中?表A 的体检项目是从表B中多选的。谢谢! Dim str As String = e.DataRow("危害因素") Dim pas() As String = str.Split("、") For Each pa As String In pas Dim s As String = "" Dim n As Integer = pas.Length For i As Integer = 0 To n - 1 Dim drs As List(of DataRow) = DataTables("表B").Select("危害因素 = \'" & pas(i) & "\'") For Each dr As DataRow In drs s = dr("体检项目") & "、" & s Next Next e.DataRow("体检项目") = s Next 不知道如何清除重复值
[此贴子已经被作者于2017/11/19 16:09:20编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/11/19 17:19:00 -- \'\'\' Select Case e.DataCol.Name Case "危害因素" Dim str As String = e.DataRow("危害因素") Dim pas() As String = str.Split("、") For Each pa As String In pas Dim ls As new List(of String) Dim n As Integer = pas.Length For i As Integer = 0 To n - 1 Dim drs As List(of DataRow) = DataTables("表B").Select("危害因素 = \'" & pas(i) & "\'") For Each dr As DataRow In drs If ls.Contains(dr("体检项目")) = False Then ls.add(dr("体检项目")) End If Next Next e.DataRow("体检项目") = String.Join("、", ls.ToArray) Next End Select |
-- 作者:zcgmxf -- 发布时间:2017/11/20 7:52:00 -- 有点甜老师,最后的结果是要将 不同的dr("体检项目") 中的的相同的项目名称也就是相同的字符串 清除,只保留一个,合并到表A 的 e.DataRow("体检项目") 中, 上面的代码合并后没有清除重复项目也就是重复的字符串。麻烦了。谢谢!
|
-- 作者:有点甜 -- 发布时间:2017/11/20 8:55:00 -- \'\'\' Select Case e.DataCol.Name Case "危害因素" Dim str As String = e.DataRow("危害因素") Dim pas() As String = str.Split("、") Dim ls As new List(of String) For Each pa As String In pas Dim drs As List(of DataRow) = DataTables("表B").Select("危害因素 = \'" & pa & "\'") For Each dr As DataRow In drs For Each s As String In dr("体检项目").split("、") If ls.Contains(s) = False Then ls.add(s) End If Next Next Next e.DataRow("体检项目") = String.Join("、", ls.ToArray) End Select |