以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  统计相关行的内容汇总到其它表对应单元格  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117732)

--  作者:czquickly
--  发布时间:2018/4/18 12:08:00
--  统计相关行的内容汇总到其它表对应单元格
表A:项目编号、责任人
表B:项目编号、任务安排、责任人
怎样实现表B责任人发生变化后,系统汇总B表里某一项目编号所有任务安排的责任人信息,按a,b,c,d格式写入表A对应项目编号的责任人栏中?

--  作者:有点甜
--  发布时间:2018/4/18 12:11:00
--  

参考,类似

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=117708

 


--  作者:czquickly
--  发布时间:2018/4/18 13:04:00
--  
例子好像有问题的,实现不了


--  作者:czquickly
--  发布时间:2018/4/18 14:11:00
--  

DataColChanged事件中

If e.DataCol.Name = "责任人" Then
    Dim dr As DataRow
    dr = DataTables("项目信息").Find("[项目编号] = \'" &e.DataRow("项目编号") & "\'")
    If dr IsNot Nothing
            dr("成员查看") = DataTables("项目进度").GetComboListString("责任人","项目编号 = \'" & e.DataRow("项目编号") & "\'", "_Identify").Replace("|",",")
    End If
End If
代码如何修正下,能使赋值的时候,与“项目信息”表里“成员查看”列的旧数据进行合并、删重

--  作者:有点甜
--  发布时间:2018/4/18 14:19:00
--  

表B(项目进度),DataColChanged事件,然后,记得重置列

 

If e.DataCol.Name = "责任人" OrElse e.DataCol.Name = "项目编号" Then
    Dim dr As DataRow
    dr = DataTables("项目信息").Find("[项目编号] = \'" & e.DataRow("项目编号") & "\'")
    If dr IsNot Nothing
            dr("成员查看") = DataTables("项目进度").GetComboListString("责任人","项目编号 = \'" & e.DataRow("项目编号") & "\'", "_Identify").Replace("|",",")
    End If
End If

 

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

[此贴子已经被作者于2018/4/18 14:20:00编辑过]

--  作者:czquickly
--  发布时间:2018/4/18 14:31:00
--  
甜老师,我没讲清楚。
图片点击可在新窗口打开查看此主题相关图片如下:11111.png
图片点击可在新窗口打开查看
成员查看列中一部分成员名单是研发任务安排中新增任务后,责任人自动汇总过去,另一部分成员是手动输入。图中AAA、BBB是自动生成,CCC是手动生成。假如我继续新增责任人是DDD的任务后,成员代码会被覆盖成AAA,BBB,DDD,如何能修改成AAA,BBB,CCC,DDD

--  作者:有点甜
--  发布时间:2018/4/18 15:21:00
--  

If e.DataCol.Name = "责任人" OrElse e.DataCol.Name = "项目编号" Then
    Dim dr As DataRow
    dr = DataTables("项目信息").Find("[项目编号] = \'" & e.DataRow("项目编号") & "\'")
    If dr IsNot Nothing
        Dim str As String = dr("成员查看")
        For Each s As String In DataTables("项目进度").getvalues("责任人","项目编号 = \'" & e.DataRow("项目编号") & "\'", "_Identify")
            If str.contains(s) = False Then
                str &= "," & s
            End If
        Next

        dr("成员查看") = str.Trim(",")
    End If
End If

[此贴子已经被作者于2018/4/18 15:24:01编辑过]

--  作者:湛江智
--  发布时间:2018/4/18 15:35:00
--  回复:(czquickly)甜老师,我没讲清楚。[upload=png...
你这个项目原文件能发上来学习吗?