Foxtable(狐表)用户栏目专家坐堂 → 取消合并单元格


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

主题:取消合并单元格

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
取消合并单元格  发帖心情 Post By:2021/9/8 17:46:00 [只看该作者]

通过窗口添加科目,保存后发现添加的行替代了原来的合计行,会计代码与会计科目合并了,如何取消原来的合并单元格,这是原来的合并代码:
With Tables("初始数据_Table6")
    .Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
    Dim rng6 As C1.Win.C1FlexGrid.CellRange = .Grid.GetCellRange(.Rows.count - 1, 1, .Rows.count - 1, 2)
    .Grid.MergedRanges.Add(rng6)
    .Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
    Dim rng7 As C1.Win.C1FlexGrid.CellRange = .Grid.GetCellRange(.Rows.count, 1, .Rows.count, 2)
    .Grid.MergedRanges.Add(rng7)
End With

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



[此贴子已经被作者于2021/9/8 17:54:28编辑过]

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/9 8:38:00 [只看该作者]

把这段代码删除掉不就行了

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/9/9 11:21:00 [只看该作者]

增行代码在会计科目窗口,上面的设置单元格合并在初始数据窗口,初始数据窗口中的科目增减要通过会计科目窗口添加,按保存按钮添加到初始数据窗口对应的表中,但添加科目后,出现新添的科目替换了初始数据窗口对应表的合计行,上现在代码不能删除,删除就看不到合并了,只能在保存时取消原来的合计单元格。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/9/9 11:24:00 [只看该作者]

如果初始数据表的科目代码列,不含“%总计",取消合并单元格。

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/9 13:35:00 [只看该作者]

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

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/9/9 16:54:00 [只看该作者]

你连接上的代码是随意选的区域,我的问题是取消指定表最后一行、两行科目代码列不为总计的合并单元格,我写了一下脑子很混乱,测试后并没实现我要的效果:
            Dim bs() As String = {1,2,3,5}
            For Each b As String In bs
                With Tables("初始数据_Table" & b)
                    Dim rng As New List(of Object)
                    .Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
                    If .TopRow+1 <> .Rows.count - 1 And .BottomRow+1 <> .Rows.count - 1 Then
                        For Each r As object In rng
                            .Grid.MergedRanges.Remove(r)
                        Next
                    End If
                End With
            Next
            Dim bs1() As String = {4,6}
            For Each b1 As String In bs1
                With Tables("初始数据_Table" & b1)
                    Dim rng1 As New List(of Object)
                    .Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
                    If .TopRow+1 <> .Rows.count - 1 And .BottomRow+1 <> .Rows.count - 1 Then
                        For Each r1 As object In rng1
                            .Grid.MergedRanges.Remove(r1)
                        Next
                    End If
                    Dim rng2 As New List(of Object)
                    .Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
                    If .TopRow + 1 <> .Rows.count And .BottomRow + 1 <> .Rows.count Then
                        For Each r2 As object In rng2
                            .Grid.MergedRanges.Remove(r2)
                        Next
                    End If
                End With
            Next

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/9 17:00:00 [只看该作者]

请上传实例说明

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/9/9 17:36:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:20210909.foxdb


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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/9 20:29:00 [只看该作者]

……
            For i As Integer = 1 To sr.length
                If Forms("初始数据").ExistControl("Table" & i) Then
                    Tables("初始数据_Table" & i).DataTable.Load()
                    Tables("初始数据_Table" & i).DataTable.DataCols("科目名称").RaiseDataColChanged()
                End If
            Next
            Dim bs() As String = {1,2,3,4,5,6}
            For Each b As String In bs
                With Tables("初始数据_Table" & b)
                    For i As Integer = .Grid.MergedRanges.count - 1 To 0 Step -1
                        .Grid.MergedRanges.Removeat(i)
                    Next
                End With
            Next
        Case "取消" '取消代码
            e.Form.Close()
    End Select
……

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/9/9 21:29:00 [只看该作者]

直接简化为这样,试过没问题了。 
           For i As Integer = 1 To sr.length
                If Forms("初始数据").ExistControl("Table" & i) Then
                    With Tables("初始数据_Table" & i)
                        .DataTable.Load()
                        .DataTable.DataCols("科目名称").RaiseDataColChanged()
                        For c As Integer = .Grid.MergedRanges.count - 1 To 0 Step -1
                            .Grid.MergedRanges.Removeat(c)
                        Next
                    End With
                End If
            Next

 回到顶部
总数 13 1 2 下一页