以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请教下如何把Find出来的列内容添加到 表中的 一行内中  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83622)

--  作者:husl
--  发布时间:2016/4/13 12:40:00
--  [求助]请教下如何把Find出来的列内容添加到 表中的 一行内中
~~老师好,请教下如何把Find出来的列内容添加到 表中的 一行内中。。 

        Dim dr3 As DataRow
        Dim Filter3 As String
        Filter3 = "[产品ID] = \'" & e.DataRow("产品ID") & "\' and [日期]=#" & Date.today & "#"
        dr3 = DataTables("入库明细表").Find(Filter3 ) 
  
        If dr3 IsNot Nothing Then \'如果找到
           
                Dim str As String = dr3("入库车号") & ":" & dr3("入库重量") & "," & dr4("库位") 
                For Each str1 As String In str.split(",")  
                    e.DataRow("入库车号") = str1
                Next
            Else   
             
                e.DataRow("入库车号") =Nothing
            End If

按照这个执行直出来的结果只显示 Find 列的第一行。。后面的数据显示不了。请教老师如何实现 所有Find的行内容都添加进去。
[此贴子已经被作者于2016/4/13 12:40:47编辑过]

--  作者:Hyphen
--  发布时间:2016/4/13 14:05:00
--  
Dim dr3 As DataRow
Dim Filter3 As String
Filter3 = "[产品ID] = \'" & e.DataRow("产品ID") & "\' and [日期]=#" & Date.today & "#"
dr3 = DataTables("入库明细表").Find(Filter3 )

If dr3 IsNot Nothing Then \'如果找到
    For Each c As DataCol In dr3.DataTable.DataCols
        e.DataRow(c.Name) = dr3(c.Name)
    Next
Else
    e.DataRow("入库车号") =Nothing
End If

--  作者:husl
--  发布时间:2016/4/13 14:14:00
--  
~这个结果是显示出来第一列内容……不是我想要的指定字符串啊
--  作者:husl
--  发布时间:2016/4/13 14:16:00
--  
Dim str2 As String = dr3("入库车号") & "|" & dr3("入库重量")
Dim Arys() As String
Dim Lst As New List(Of String)

Lst.Add(str2)

Arys = Lst.ToArray() \'将集合转换为数组
Dim Str1 As String
Str1 = String.Join("-", Arys)
Output.Show(Str1)

改成这样貌似之前可以。。我后来修改了一下。。找不到哪里错了。……

--  作者:Hyphen
--  发布时间:2016/4/13 14:22:00
--  
不明白要做什么,截图说明一下要的效果
--  作者:husl
--  发布时间:2016/4/13 14:29:00
--  
简单来说。就是找出 入库明细表里面 所有产品ID 和当前表一样的行

然后把找出的行 其中列名 “入库车号”,“入库重量”,两列的中每行的字符组成一个字符串
然后 添加一个 间隔  隔开每行的数据  添加到表中
例如   找出来的行
入库车号      入库重量
沪B1234        10
沪B3214        4

组成字符 沪B1234|10——沪B3214|4  添加到当前表的某一列中

--  作者:Hyphen
--  发布时间:2016/4/13 15:02:00
--  
Dim Filter3 As String
Filter3 = "[产品ID] = \'" & e.DataRow("产品ID") & "\' and [日期]=#" & Date.today & "#"
Dim drs As List(Of DataRow) = DataTables("入库明细表").Select(Filter3 )

If drs.Count > 0 Then \'如果找到
    Dim str As String = ""
    For Each dr As DataRow In drs
        str = str & dr("入库车号") & "|" & dr("入库重量") & "-"
    Next
    e.DataRow("入库车号")  = str.TrimEnd("-")
Else
    e.DataRow("入库车号") =Nothing
End If

--  作者:husl
--  发布时间:2016/4/13 15:15:00
--  
图片点击可在新窗口打开查看膜拜~~弄了一天了。。。终于解决了。谢谢,谢谢谢谢!!!!!