Foxtable(狐表)用户栏目专家坐堂 → 相邻行产品相同合并


  共有2667人关注过本帖树形打印复制链接

主题:相邻行产品相同合并

帅哥哟,离线,有人找我吗?
lshshlxsh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
相邻行产品相同合并  发帖心情 Post By:2016/7/29 14:54:00 [只看该作者]

请问一下 下一行产品 上下两行产品一样的如何设置跟踪号等于前后跟踪号合并?如图


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/7/29 14:54:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/7/29 16:13:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目260.table


 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2016/7/30 7:39:00 [只看该作者]

谢谢狐狸爸爸,但是像1,2和6,7,8行并相邻的 ,请问一下这样怎么区分? 
图片点击可在新窗口打开查看此主题相关图片如下:5.bmp
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/7/30 9:42:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/7/30 13:33:00 [只看该作者]

DataColChanged事件

Select Case e.DataCol.name
    Case "计划跟踪号","产品组合"
        Dim t As Table = Tables(e.DataTable.Name)
        Dim idx As Integer =t.FindRow(e.DataRow)
        If idx > -1 Then
            Dim min As Integer = idx-1
            Dim max As Integer = idx+1
            Dim nv As String = e.NewValue 
            Dim ov As String = e.OldValue 
            If e.DataCol.name = "计划跟踪号" Then
                nv = e.DataRow("产品组合")
                ov = e.DataRow("产品组合")
            End If
            Do While min >= 0
                Dim r As Row = t.Rows(min)
                If r("产品组合") = nv OrElse r("产品组合") = ov Then
                    min -= 1
                Else
                    Exit Do
                End If
            Loop
            min += 1
            Do While max < t.Rows.Count
                Dim r As Row = t.Rows(max)
                If r("产品组合") = nv OrElse r("产品组合") = ov Then
                    max += 1
                Else
                    Exit Do
                End If
            Loop
            max -= 1
            
            Dim dr As Row = t.Rows(min)
            Dim f As Integer = min
            Dim gzh As String = dr("计划跟踪号")
            For i As Integer = min + 1 To max
                Dim r As Row = t.Rows(i)
                If r("产品组合") = dr("产品组合") Then
                    gzh &= "," & r("计划跟踪号")
                Else
                    For j As Integer = f To i-1
                        t.Rows(j)("跟踪号") = gzh
                    Next
                    f = i
                    dr = r
                    gzh = dr("计划跟踪号")
                End If
            Next
            For k As Integer = f To max
                t.Rows(k)("跟踪号") = gzh
            Next
            
        End If
End Select

 回到顶部