找回密码
 立即注册

QQ登录

只需一步,快速开始

talklion911

初级会员

27

主题

76

帖子

239

积分

初级会员

积分
239
talklion911
初级会员   /  发表于:2021-8-19 13:55  /   查看:5490  /  回复:11
1金币

分组后,表头宽度不够,如下图,能设置为自适应吗?

image.png604398803.png
image.png397020873.png
image.png549563293.png

最佳答案

查看完整内容

代码如下,有的是我的业务逻辑,我就不删除了 Dim gm As FarPoint.Win.Spread.Model.GroupDataModel gm = FpSpread1.ActiveSheet.Models.Data If IsNothing(gm) = False Then gm.SuspendGrouping = False gm.Group(value) For i = 0 To FpSpread1.ActiveSheet.NonEmptyRowCount - 1 If gm.IsGroup(i) Then Dim g As FarP ...

11 个回复

倒序浏览
最佳答案
最佳答案
talklion911
初级会员   /  发表于:2021-8-19 13:55:29
来自 11#
Richard.Ma 发表于 2022-1-6 10:44
好办法,你用的gm是GroupDataModel 吧,欢迎分享代码出来。

代码如下,有的是我的业务逻辑,我就不删除了
   Dim gm As FarPoint.Win.Spread.Model.GroupDataModel

        gm = FpSpread1.ActiveSheet.Models.Data
        If IsNothing(gm) = False Then
            gm.SuspendGrouping = False
            gm.Group(value)
            For i = 0 To FpSpread1.ActiveSheet.NonEmptyRowCount - 1
                If gm.IsGroup(i) Then
                    Dim g As FarPoint.Win.Spread.Model.Group = gm.GetGroup(i)
                    Dim column As Int32 = g.Column
                    Dim s As String = gm.TargetModel.GetValue(getRow(g), column).ToString()
                    Dim column_name As String = FpSpread1.ActiveSheet.Columns(g.Column).Tag.ToString.Trim
                    Dim dr As DataRow = find_select_list(column_name)
                    Dim group_text As String = s
                    If IsNothing(dr) = False Then
                        If IsDBNull(dr("Sub_column")) = True OrElse dr("Sub_column") > -1 Then '-1表示该字段是子列,已经被指定
                            Dim sql As String = Replace(dr("SQL_export").ToString, "@Unit_id@", form_load.frm_SPI_LOAD.unit_id)
                            sql = sql.Replace("[", "").Replace("]", "")
                            Dim dt As DataTable = cl_common.fc_Get_Datatable(sql)
                            If IsNothing(dt) = False Then
                                Dim column_name_temp As String = dt.Columns(0).ColumnName
                                Dim dr2 As DataRow() = dt.Select(column_name_temp & "=" & s)
                                If dr2.Count > 0 Then
                                    group_text = dr2(0)(1)
                                End If
                            End If

                        End If
                    End If
                    g.Text = group_text
                End If
            Next
            gm.SuspendGrouping = True
            value = gm.SortInfo
            FpSpread1.ResumeLayout()
        End If

评分

参与人数 1金币 +500 收起 理由
Richard.Ma + 500 感谢分享

查看全部评分

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-19 16:08:15
2#
您好,目前GroupBar中的项目宽度不支持更改和设置
回复 使用道具 举报
talklion911
初级会员   /  发表于:2022-1-3 22:18:08
3#
Richard.Ma 发表于 2021-8-19 16:08
您好,目前GroupBar中的项目宽度不支持更改和设置

这个新版里面能调整了吗?还有,某一列如果是参与分组的,修改数据后自动跳转了,能否设置暂时不跳转?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-4 10:52:22
4#
你好,目前仍然没有办法手动调整,这个问题目前在于虽然自动调整了分组列标题宽度 ,但是自动设置的宽度仍然偏窄导致被换行,这个问题我会先提一个需求上去,看研发那边是否可以修复

另外,你提到的“修改数据后自动跳转了,能否设置暂时不跳转”这个能否详细描述一下如果重现你说的问题,我不太理解
回复 使用道具 举报
talklion911
初级会员   /  发表于:2022-1-4 13:52:44
5#
现在修改红框中的属性,这行数据自动调整到下一个组了,我希望修改后不自动换组,我手动刷新的时候再换组。

image.png208797606.png
image.png834617309.png
image.png180730284.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-4 15:07:27
6#
明白了,我先帮你看看有没有相应设置可以改变
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-5 18:48:26
7#
您好,目前没有办法可以更改自动跳转的行为,这个是已经封装好的。控件没有提供相关的属性
回复 使用道具 举报
talklion911
初级会员   /  发表于:2022-1-5 21:58:23
8#
Richard.Ma 发表于 2022-1-5 18:48
您好,目前没有办法可以更改自动跳转的行为,这个是已经封装好的。控件没有提供相关的属性

那有没有办法把分组的这列锁定不让修改呢?不参与分组的时候又解除锁定
回复 使用道具 举报
talklion911
初级会员   /  发表于:2022-1-5 23:04:11
9#
本帖最后由 talklion911 于 2022-1-5 23:14 编辑
Richard.Ma 发表于 2022-1-5 18:48
您好,目前没有办法可以更改自动跳转的行为,这个是已经封装好的。控件没有提供相关的属性

我用gm.SuspendGrouping = False实现了暂停刷新,这样应该可以的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部