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


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

主题:取消合并单元格

美女呀,离线,留言给我吧!
采菊东篱下
  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


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

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

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


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

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

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

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


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

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


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

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/9/10 17:02:00 [显示全部帖子]

通过科目目录树窗口上的菜单弹出会计科目窗口,在会计科目里的表上添加科目,它是一个共用窗口,可在初始数据窗口上打开,也可在科目窗口打开,现在我把代码写成这样,在科目窗口中打开添加科目后保存报错:

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

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

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210910165825.png
图片点击可在新窗口打开查看
我不是已经判断了是否存在吗?怎么还报错?
    Select Case e.StripItem.Name
        Case "保存" '保存代
            For Each s As String In sr
                Dim C As Integer = DataTables(s).Compute("Count([已审核])","[已审核] = True")
                Su = Su + C
            Next
            If Su = 0 Then
                For i As Integer = 1 To sr.length
                    For Each chqgx As Row In Tables("会计科目_Table" & i).Rows
                        chqgx("初始状态科目") = True
                    Next
                    Tables("会计科目_Table" & i).DataTable.save()
                Next
                For Each s As String In sr
                    DataTables(s).Load()
                    DataTables(s).DataCols("科目名称").RaiseDataColChanged()
                Next
                If Forms.contains("初始数据") Then
                    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
                ElseIf Forms.contains("科目") Then
                    For i1 As Integer = 1 To sr1.length
                        If Forms("科目").ExistControl("TreeView" & i1) Then
                            With Tables("科目_TreeView" & i1)
                                .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
                End If
            Else
                For i As Integer = 1 To sr.length
                    Tables("会计科目_Table" & i).DataTable.save()
                Next
                For Each s As String In sr
                    DataTables(s).Load()
                    DataTables(s).DataCols("科目名称").RaiseDataColChanged()
                Next
                If Forms.contains("科目") Then
                    For i1 As Integer = 1 To sr1.length
                        If Forms("科目").ExistControl("Table" & i1) Then
                            With Tables("科目_Table" & i1)
                                .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
                End If
            End If
End Select
[此贴子已经被作者于2021/9/10 17:18:22编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/9/10 17:42:00 [显示全部帖子]

谢谢,不过目录树不需要这样更新,我删除添加的代码了。

 回到顶部