以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关联行只显示首行编号(已用合并模式解决,很好解决了记账凭证序时簿的显示问题))  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179780)

--  作者:洮沙
--  发布时间:2022/9/8 15:15:00
--  [求助]关联行只显示首行编号(已用合并模式解决,很好解决了记账凭证序时簿的显示问题))
老师,计划实现如下图功能:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220908151034.png
图片点击可在新窗口打开查看
凭证字号:记-1关联多行数据,如何能够做到只是首行显示凭证字号、期间等相同信息,麻烦给个思路,谢谢!
[此贴子已经被作者于2022/9/8 16:54:16编辑过]

--  作者:有点蓝
--  发布时间:2022/9/8 15:24:00
--  
没看懂
--  作者:洮沙
--  发布时间:2022/9/8 15:26:00
--  
帮助文件中找到了,可以用合并模式。另外,麻烦问一下,合并模式如何用代码设置?
--  作者:有点蓝
--  发布时间:2022/9/8 15:29:00
--  
帮助搜“合并模式”,第一个就是
--  作者:洮沙
--  发布时间:2022/9/8 15:32:00
--  
还有个问题,如下图1所指,如何用代码设置靠上显示?

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220908152939.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/9/8 15:37:55编辑过]

--  作者:有点蓝
--  发布时间:2022/9/8 15:52:00
--  
Tables("表A").grid.Cols("第一列").TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.LeftTop
--  作者:洮沙
--  发布时间:2022/9/8 15:56:00
--  
蓝老师,参照
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=106332&skin=0

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220908155955.png
图片点击可在新窗口打开查看
进行合并设置,第1列、第2列能否像第7列一样进行合并?也就是以第3列为标准?麻烦了,谢谢!
[此贴子已经被作者于2022/9/8 16:00:13编辑过]

--  作者:有点蓝
--  发布时间:2022/9/8 16:03:00
--  
第3列,移到最前面就可以
--  作者:洮沙
--  发布时间:2022/9/8 16:15:00
--  
蓝老师,不行啊?!麻烦再看一下。
原数据:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220908161246.png
图片点击可在新窗口打开查看
合并后:

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

合并命令:
Dim t As Table = Tables("表A")
Dim cs As String() = {"第一列", "第二列", "第三列", "第七列"}

\'取消合并
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

\'设置合并
For i As Integer = 0 To cs.length - 1
    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
        For k As Integer = 0 To i
            If r1(cs(k)) <> r2(cs(k)) Then
                same = False
                Exit For
            End If
        Next
       
        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, t.cols(cs(i)).Index + 1, j + t.HeaderRows - 1, t.cols(cs(i)).Index + 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, t.cols(cs(i)).Index + 1, j + t.HeaderRows, t.cols(cs(i)).Index + 1)
            t.Grid.MergedRanges.add(rng)
        End If
    Next
   
Next
Tables("表A").grid.Cols("第一列").TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.LeftTop
Tables("表A").grid.Cols("第二列").TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.LeftTop
Tables("表A").grid.Cols("第三列").TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.LeftTop
Tables("表A").grid.Cols("第七列").TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.LeftTop
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:合并模式.foxdb


[此贴子已经被作者于2022/9/8 16:16:46编辑过]

--  作者:有点蓝
--  发布时间:2022/9/8 16:28:00
--  
这种底层的合并方式我不懂,只能自行研究了