找回密码
 立即注册

QQ登录

只需一步,快速开始

cccdl
中级会员   /  发表于:2012-5-1 09:52  /   查看:5316  /  回复:3
需求是这样的,希望通过别名简化表单内的公式。

碰到的问题如下:
1,因为业务逻辑地可扩展性,公式内需要合计的单元格可能会很多很多很多,不希望出现公式内容超长;
2,需要合并的单元格,也不是连续在一起的,不能用a1:a5这样的方式来表示,
3,试图使用getCustomName来解决问题1~2时,发现不能识别"A1,A3,A5"这样的分段单元格。

希望得到的帮助:
1,getCustomName中,自定义的name不能超过255个字符,那么后边的公式最大能有多长? 这边的spread还是v3的;

2,我在翻阅帮助文档的时候,在http://www.gcpowertools.com.cn/docs/spreadwin5help//FarPoint.Win.Spread~FarPoint.Win.Spread.SheetView~GetSelections.html中发现了这么一段描述:
该方法依赖于表单上选择模型(Models.Selection)对 %IDisjointSelections:FarPoint.Win.Spread~FarPoint.Win.Spread.Model.IDisjointSelections% 接口的实现。如果选择模型未实现上述接口,那么方法会在数组中返回包含当前活动单元格的单一的 %CellRange:FarPoint.Win.Spread~FarPoint.Win.Spread.Model.CellRange% 对象。

然后,我对model下的这些接口产生了浓厚的兴趣,不过我想知道,这里边是否有某个接口,可以让我重载,进而能解决上边的问题3。

以上,非常感谢grapecity长期以来的技术支持。

3 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-2 10:38:00
沙发
cccdl 你好

我对你的理解是这样的,你希望将所有参加合计的单元格字符串存放到一个CustomName中,我使用的是下面的代码:
  1.     fpSpread1.ActiveSheet.AddCustomName("Cells", "A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20", 1, 1);
  2.     fpSpread1.ActiveSheet.SetFormula(1, 1, "SUM(" + fpSpread1.ActiveSheet.GetCustomName("Cells", 1, 1).ToString() + ")");
  3.     fpSpread1.ActiveSheet.SetValue(0, 0, 10);
  4.     fpSpread1.ActiveSheet.SetValue(1, 0, 10);
复制代码

你提到的不能识别“A1,A3,A5”指的是什么意思呢,“A1,A3,A5”是可以直接作为SUM()函数的参数。
回复 使用道具 举报
cccdl
中级会员   /  发表于:2012-5-2 14:11:00
板凳
原帖由 dof 于 2012-5-2 10:38:00 发表
cccdl 你好

我对你的理解是这样的,你希望将所有参加合计的单元格字符串存放到一个CustomName中,我使用的是下面的代码:
[code]    fpSpread1.ActiveSheet.AddCustomName("Cells", "A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18


我这边就是运行这样的addCustomName时,无法把 A1,A2,A3,A4.....A18 这样的一组用逗号分割的地址合并到一个自定义名称上,让我很纳闷。
我估计问题是出在公司提供的spread版本太低。

之前就这个事儿问了好多遍,不知道出于什么原因就是不换……
---------------------------------
那么,就剩一个问题了,这个自定义名称,能装下一个多大的字符串作为它的内容物,
您那边方便帮忙查一下么?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-2 18:20:00
地板
我这边在3.0中调试的结果是AddCustomName中不能添加 “A1,A2”的字符串,那怕只有A1,A2也不行,的确是和spread版本相关。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部