以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何根据进场日期列把内容增加到同一日期的“每日摘要”中 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128956) |
-- 作者:ZJZK2018 -- 发布时间:2018/12/18 23:34:00 -- 如何根据进场日期列把内容增加到同一日期的“每日摘要”中 如何根据"进场日期"列把内容增加到同一日期的“每日摘要”中(同一日期的第一行) [此贴子已经被作者于2018/12/19 0:01:36编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/12/19 9:44:00 -- 1、循环每一行拼接内容
Dim drs = e.datatable.select("进场日期=#" & e.datarow("进场日期") & "#", "_Sortkey") for each dr as datarow in drs
next
2、把拼接的内容,赋值给 drs(0) 行的列即可
drs(0)("某列") = str [此贴子已经被作者于2018/12/19 9:44:59编辑过]
|
-- 作者:ZJZK2018 -- 发布时间:2018/12/19 21:02:00 -- 老师上面的问题基本解决了,表DataColChanged代码如下: Select Case e.DataCol.Name Case "进场日期","材料名称" Dim drs As List(Of DataRow) = e.DataTable.Select("进场日期 = #" & e.DataRow("进场日期") & "#", "_Sortkey") Dim str As String Dim lst As New List(Of String) For Each dr As DataRow In drs If lst.Contains(dr("材料名称")) = False Then lst.Add(dr("材料名称")) End If Next str = String.Join(",",lst.ToArray) drs(0)("每日摘要") = str.Trim(",","") For i As Integer = 1 To lst.Count - 1 drs(i)("每日摘要") = Nothing Next End Select 但现在又有一个新的问题出现,如果删除某一行时,如何自动更新?? [此贴子已经被作者于2018/12/19 21:01:58编辑过]
|
-- 作者:ZJZK2018 -- 发布时间:2018/12/19 21:44:00 -- 已解决,在表DataRowDeleted事件中: Dim fdr As DataRow = e.DataTable.Find("进场日期 = #" & e.DataRow("进场日期") & "#") If fdr IsNot Nothing Then SystemReady = False Dim drs As List(Of DataRow) = e.DataTable.Select("进场日期 = #" & fdr("进场日期") & "#", "_Sortkey") Dim str As String Dim lst As New List(Of String) For Each dr As DataRow In drs If lst.Contains(dr("材料名称")) = False Then lst.Add(dr("材料名称")) End If Next str = String.Join(",",lst.ToArray) drs(0)("每日摘要") = str.Trim(",","") For i As Integer = 1 To lst.Count - 1 drs(i)("每日摘要") = Nothing Next SystemReady = True End If |
-- 作者:ZJZK2018 -- 发布时间:2018/12/21 21:36:00 -- 如何删除行时,每日摘要自动变成第二条? |
-- 作者:有点蓝 -- 发布时间:2018/12/21 22:12:00 -- 测试没有问题啊 |
-- 作者:ZJZK2018 -- 发布时间:2018/12/22 0:08:00 -- 如何修改“进场日期”或“材料名称”或“审核结果”的数据时,作相应调整,如材料名称为33的行的进场日期列由2018-12-07改为2018-12-05时,2018-12-05的“每日摘要”作了相应调整,但2018-12-07的“每日摘要”没有作相应调整,如何处理? |
-- 作者:有点蓝 -- 发布时间:2018/12/22 9:10:00 -- Select Case e.DataCol.Name Case "进场日期","材料名称","审核结果" If e.DataRow("审核结果").Contains("符合要求") Then Dim drs As List(Of DataRow) = e.DataTable.Select("进场日期 = #" & e.DataRow("进场日期") & "# And 审核结果 = \'" & e.DataRow("审核结果") & "\'", "_Sortkey") Dim str As String Dim lst As New List(Of String) For Each dr As DataRow In drs If lst.Contains(dr("材料名称")) = False Then lst.Add(dr("材料名称")) End If dr.Save() Next str = String.Join(",",lst.ToArray) drs(0)("每日摘要") = str.Trim(",","") For i As Integer = 1 To lst.Count - 1 drs(i)("每日摘要") = Nothing Next End If If e.DataCol.Name = "进场日期" AndAlso e.OldValue <> Nothing Then Dim drs As List(Of DataRow) = e.DataTable.Select("进场日期 = #" & e.OldValue & "# And 审核结果 = \'" & e.DataRow("审核结果") & "\'", "_Sortkey") Dim str As String Dim lst As New List(Of String) For Each dr As DataRow In drs If lst.Contains(dr("材料名称")) = False Then lst.Add(dr("材料名称")) End If dr.Save() Next str = String.Join(",",lst.ToArray) drs(0)("每日摘要") = str.Trim(",","") For i As Integer = 1 To lst.Count - 1 drs(i)("每日摘要") = Nothing Next End If End Select
|