以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  逻辑列条件下的同步汇总字符的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=114459)

--  作者:douglas738888
--  发布时间:2018/2/6 17:08:00
--  逻辑列条件下的同步汇总字符的问题

请教老师,下面代码无法同步汇总字符到质量评价表的指定质量评价人,需要重置列才能汇总字符

 

其他代码条件:工作策划副表 勾选逻辑列后,质量评价才同步增加行(任务索引也同步过去) 此条件的代码没有问题,能正常实现跨表引用数据

Select Case e.DataCol.name
    Case "策划完成"
        Dim dr As DataRow = DataTables("质量评价").Find("任务索引 = \'" & e.DataRow("任务索引") & "\'")
        If dr Is Nothing Then
            If e.DataRow("策划完成") = True  Then
                dr = DataTables("质量评价").AddNew()
                dr("任务索引") = e.DataRow("任务索引")
                dr("项目编号") = e.DataRow("项目编号")

........................

 

问题:当工作策划副表勾选逻辑列,质量评价也能增加行,但就是下面的代码无法同步汇总字符到 质量评价的列“指定质量评价人”需要重置黄色部分的列才行

 

If e.DataCol.Name = "校对程序_校对" OrElse e.DataCol.Name = "审核程序_审核" OrElse e.DataCol.Name = "批准程序_批准" Then
   Dim pdr As DataRow = DataTables("质量评价").find("任务索引 = \'" & e.DataRow("任务索引") & "\'")
        If pdr IsNot Nothing Then
            Dim str As String = ""
            Dim str1 As String = ""
            Dim str2 As String = ""
            For Each drr As DataRow In DataTables("工作策划副表").Select("任务索引 = \'" & e.DataRow("任务索引") & "\'")
                str &  = iif(drr.isnull("校对程序_校对"), "", drr("校对程序_校对") & ",") 
                str1 & = iif(drr.isnull("审核程序_审核"), "", drr("审核程序_审核") & ",") 
                str2 & = iif(drr.isnull("批准程序_批准"), "", drr("批准程序_批准"))      
            Next
             pdr("指定质量评价人") = (str & str1 & str2).trim(chr(13),chr(10))
    End If
End If

[此贴子已经被作者于2018/2/6 17:22:02编辑过]

--  作者:有点甜
--  发布时间:2018/2/6 18:06:00
--  
你勾选逻辑列的时候,父表不能赋值?你勾选逻辑列之后,触发了代码,进入循环了没有?加入msgbox测试。
[此贴子已经被作者于2018/2/6 18:06:16编辑过]