以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如图,备注能按姓名来合并吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126339)

--  作者:xxfoxtable
--  发布时间:2018/10/18 20:03:00
--  如图,备注能按姓名来合并吗?

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

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

必须输入相同的内容,才能合并。

 

不然,就写代码合并,如合并第二列,3、4、5行,如代码

 

Dim tb As Table = Tables("表A")
tb.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
Dim rng As C1.Win.C1FlexGrid.CellRange = tb.Grid.GetCellRange(3, 2, 5, 2)  \'从坐标3,2合并到5,2
tb.Grid.MergedRanges.add(rng)


--  作者:xxfoxtable
--  发布时间:2018/10/18 20:23:00
--  
姓名行数不固定啊,怎么写代码?
[此贴子已经被作者于2018/10/18 20:23:59编辑过]

--  作者:有点甜
--  发布时间:2018/10/18 20:58:00
--  
以下是引用xxfoxtable在2018/10/18 20:23:00的发言:
姓名行数不固定啊,怎么写代码?
[此贴子已经被作者于2018/10/18 20:23:59编辑过]

 

Dim t As Table = Tables("表a")

\'取消合并
Dim ls As new List(of object)
For Each r As object In t.Grid.MergedRanges
    ls.add(r)
Next
For Each r As object In ls
    t.Grid.MergedRanges.Remove(r)
Next

\'设置合并
Dim i As Integer = t.Cols("第一列").Index
Dim ii As Integer = t.Cols("第二列").Index
Dim top As Integer = 0
For j As Integer = 1 To t.Rows.count-1
    Dim r1 As Row = t.Rows(j-1)
    Dim r2 As Row = t.Rows(j)
    Dim same As Boolean = True
   
    If r2(i) = Nothing OrElse r1(i) <> r2(i) Then
        same = False
    End If
   
    If same = False  Then
        t.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
        Dim rng As C1.Win.C1FlexGrid.CellRange = t.Grid.GetCellRange(top+t.HeaderRows, ii+1, j+t.HeaderRows-1, ii+1)
        t.Grid.MergedRanges.add(rng)
       
        Top = j
    ElseIf j = t.rows.count-1 Then
        Dim rng As C1.Win.C1FlexGrid.CellRange = t.Grid.GetCellRange(top+t.HeaderRows, ii+1, j+t.HeaderRows, ii+1)
        t.Grid.MergedRanges.add(rng)
    End If
Next

 


--  作者:xxfoxtable
--  发布时间:2018/10/18 23:27:00
--  
这个代码是excel合并代码吗?看着象table控件合并代码呢?一楼是excel模板打印出来的截图
[此贴子已经被作者于2018/10/18 23:27:28编辑过]

--  作者:有点甜
--  发布时间:2018/10/19 8:36:00
--  
以下是引用xxfoxtable在2018/10/18 23:27:00的发言:
这个代码是excel合并代码吗?看着象table控件合并代码呢?一楼是excel模板打印出来的截图
[此贴子已经被作者于2018/10/18 23:27:28编辑过]

 

打印前执行代码

 

Dim dt As DataTable = DataTables("表A")
For Each xm As String In dt.GetValues("姓名")
    Dim bzs As String = dt.GetComboListString("备注", "姓名=\'" & xm & "\'")
    dt.ReplaceFor("备注", bzs,  "姓名=\'" & xm & "\'")
Next