找回密码
 立即注册

QQ登录

只需一步,快速开始

victorysoft

高级会员

40

主题

100

帖子

1040

积分

高级会员

积分
1040

活字格认证

victorysoft
高级会员   /  发表于:2013-7-19 15:44  /   查看:5906  /  回复:7
spread for winform 中分组加号后面的内容能否设置?
图中红框中的部分

QQ截图20130719154208.png

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-7-19 16:22:00
沙发
回复 1楼victorysoft的帖子

可以修改,请参考我的 demo :
VS2008 、FrameWork 3.5
columnfooter.zip (20.86 KB, 下载次数: 133)
回复 使用道具 举报
victorysoft
高级会员   /  发表于:2013-7-19 16:51:00
板凳
好的 谢谢  我先看看
回复 使用道具 举报
victorysoft
高级会员   /  发表于:2013-7-19 17:37:00
地板
刚才看了一下,我的意思你大概理解错了,是图片中的红框部分也就是有 +/- 号那个地方,不是下面的合计行,不过你给的代码也帮助我了解怎么样设置合计行。
具体的说吧,我不清楚 +/- 号 后面的文本前缀带的 列索引号怎么去掉,或是把索引号变成分组列的标题文。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-7-19 18:27:00
5#
回复 4楼victorysoft的帖子

victorysoft 你好,

图中是不是你想要的效果?

Untitled.png

在我的例子中有针对分组头进行处理的部分。
回复 使用道具 举报
victorysoft
高级会员   /  发表于:2013-7-19 18:29:00
6#
对对……就是这样的
回复 使用道具 举报
victorysoft
高级会员   /  发表于:2013-7-19 18:31:00
7#
哪段代码?
//更改分组 Text 内容
            if (spread.ActiveSheet.Models.Data.GetType() == typeof(FarPoint.Win.Spread.Model.GroupDataModel))
            {
                gm = (FarPoint.Win.Spread.Model.GroupDataModel)spread.Sheets[0].Models.Data;
                for (int i = 0; i < gm.Groups.Count; i++)
                {
                    try
                    {

                        FarPoint.Win.Spread.Model.Group g;
                        g = gm.Groups as FarPoint.Win.Spread.Model.Group;
                        int row = g.Rows.Count;
                        if (g != null)
                        {
                            g.Text = g.GroupFooter.DataModel.GetValue(0, 4).ToString();
                        }
                    }
                    catch (Exception)
                    {

                    }
                }
            }
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-7-22 14:49:00
8#
回复 7楼victorysoft的帖子

以下为主要代码,首先需要设置分组和分组使用的公司,然后在for循环中更改显示的内容:

  1.             //设置默认分组
  2.             DefaultGroupFooter groupFooter = fpSpread1.Sheets[0].DefaultGroupFooter[4];
  3.             ISheetDataModel dataModel = groupFooter.DataModel;

  4.             //设置分组脚中公式
  5.             (dataModel as IAggregationSupport).SetCellAggregationType(0, 3, AggregationType.Count);
  6.             (dataModel as IAggregationSupport).SetCellAggregationFormat(0, 3, "数量:{0}");
  7.             (dataModel as IAggregationSupport).SetCellAggregationType(0, 4, AggregationType.Sum);
  8.             (dataModel as IAggregationSupport).SetCellAggregationFormat(0, 4, "合计:{0}能否进行修改?");
  9.             fpSpread1.ActiveSheet.GroupFooterVisible = true;

  10.             FarPoint.Win.Spread.FpSpread spread = this.fpSpread1;
  11.             FarPoint.Win.Spread.Model.GroupDataModel gm;

  12.             //更改分组 Text 内容
  13.             if (spread.ActiveSheet.Models.Data.GetType() == typeof(FarPoint.Win.Spread.Model.GroupDataModel))
  14.             {
  15.                 gm = (FarPoint.Win.Spread.Model.GroupDataModel)spread.Sheets[0].Models.Data;
  16.                 for (int i = 0; i < gm.Groups.Count; i++)
  17.                 {
  18.                     try
  19.                     {

  20.                         FarPoint.Win.Spread.Model.Group g;
  21.                         g = gm.Groups[i] as FarPoint.Win.Spread.Model.Group;
  22.                         int row = g.Rows.Count;
  23.                         if (g != null)
  24.                         {
  25.                             g.Text = g.GroupFooter.DataModel.GetValue(0, 4).ToString();
  26.                         }
  27.                     }
  28.                     catch (Exception)
  29.                     {

  30.                     }
  31.                 }
  32.             }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部