找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] spread 分组问题

iceman
社区贡献组   /  发表于:2012-3-1 09:50:00
11#

回复 10# dc22wt 的帖子

dc22wt 你好,

1.下面这段代码为添加默认分组,即程序运行,无需操作,自动添加分组。

  1. // 添加默认分组列
  2.             SheetView sheet = fpSpread1.ActiveSheet;
  3.             sheet.AllowGroup = true;
  4.             GroupDataModel gdm = new GroupDataModel(sheet.Models.Data);
  5.             sheet.Models.Data = gdm;
  6.             //SortInfo 构造函数 SortInfo(0, true) 中第一个参数为 用于分组的列索引。
  7.             SortInfo[] siList = new SortInfo[] { new SortInfo(0, true) };
  8.             gdm.Group(siList, null);
复制代码
2.DefaultGroupFooter 是我们下面设置公式的对象,也就是 fpSpread1.Sheets[0].DefaultGroupFooter[0] 中索引即为我们公式的作用列,只用基于索引中列分组时,公式才起作用。

3.合计汉字没有显示的问题,使用我的 Demo 可以显示吗?我没能重现,可以发个 Demo 到论坛调试。
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-3-2 10:33:00
12#
感谢斑竹的认真,详细的回复,还有一个问题就是我在程序写好的排序但是经过分组之后,那一列的排序就乱了
,这个不知道什么原因,即使我后来在表单上使用了自动排序功能还是不能解决。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-3-2 13:11:00
13#

回复 12# dc22wt 的帖子

dc22wt  你好,

1.分组中的排序首先以组为单位,进行组内排序,所以会出现排序和分组之前的排序不符合。

2.如果需要实现组内排序:可以通过 Spread Group 事件添加排序,代码中演示了分组后按第一列排序。请参考:
  1.         private void fpSpread1_Grouped(object sender, EventArgs e)
  2.         {
  3.             FarPoint.Win.Spread.Model.GroupDataModel gm = fpSpread1.Sheets[0].Models.Data as FarPoint.Win.Spread.Model.GroupDataModel;
  4.             FarPoint.Win.Spread.SortInfo[] sort = new SortInfo[1]{new SortInfo(0,true)};   
  5.             gm.Sort(sort);
  6.         }
复制代码
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-3-5 15:46:00
14#
你好,那个消除分组的语句对于未分组的模型会报错,我想自己先判断是否存在分组模型,然后再对它进行消除分组,请问这个判定这个分组模型是否存在的语句怎么写,谢谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-3-6 10:48:00
15#

回复 14# dc22wt 的帖子

dc22wt 你好,
这是我的实现方法:

  1. bool hasGroup = true;
  2.             try
  3.             {
  4.                 fpSpread1.Sheets[0].Models.Data = ((FarPoint.Win.Spread.Model.GroupDataModel)fpSpread1.Sheets[0].Models.Data).TargetModel;
  5.             }
  6.             catch (Exception)
  7.             {
  8.                 hasGroup = false;
  9.             }
  10.             finally
  11.             {
  12.                 if (!hasGroup)
  13.                 {
  14.                     MessageBox.Show("当前没有分组存在");
  15.                 }
  16.             }
复制代码
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-3-6 15:36:00
16#
分组总计的时候怎么会出现这个?

jpg

jpg

QQ截图未命名.png

12.84 KB, 下载次数: 282

png

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-3-6 15:40:00
17#

回复 16# dc22wt 的帖子

dc22wt 你好,
你好,我不是十分清楚你的意思,能否详细的描述下问题?
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-3-6 15:40:00
18#
就是合计那项出现很多小数位
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-3-6 15:47:00
19#
时好时坏,搞不懂
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-3-6 18:07:00
20#

回复 19# dc22wt 的帖子

dc22wt 你好,
请尝试通过,SetAggregationFormat 去设置数据格式,格式设置方式和 String.Format 方法相同。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部