找回密码
 立即注册

QQ登录

只需一步,快速开始

风中人

中级会员

2

主题

12

帖子

978

积分

中级会员

积分
978

活字格认证

最新发帖
风中人
中级会员   /  发表于:2015-8-6 15:41  /   查看:20559  /  回复:25
如下图描述:

2.jpg (101.54 KB, 下载次数: 1309)

25 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-8-6 18:20:00
沙发
回复 1楼风中人的帖子

Spread 提供了自定义公式的功能,你可以参考帮助文档 Creating a Custom Function  章节。
在线帮助文档:http://sphelp.grapecity.com/WebH ... mulacustomfunc.html
回复 使用道具 举报
风中人
中级会员   /  发表于:2015-8-7 09:22:00
板凳

你好,你给的自定义公式代码是这样放么??怎么没有反应,可以给我做个例子吗?(同时请你看看我的源码)

回复 2楼iceman的帖子


2.jpg (101.54 KB, 下载次数: 1291)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-7 11:34:00
地板
回复 3楼风中人的帖子

好的,我会做一个demo给你,需要1~2个工作日能够完成。

评分

参与人数 1满意度 +5 收起 理由
风中人 + 5 谢谢,问题解决;

查看全部评分

回复 使用道具 举报
风中人
中级会员   /  发表于:2015-8-7 14:52:00
5#
回复 4楼iceman的帖子

嗯嗯,好的,谢谢;在你方便的情况下,尽量尽快!谢谢;
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-7 16:28:00
6#
回复 5楼风中人的帖子

好的,尽量在周一发送给你。

评分

参与人数 1满意度 +5 收起 理由
风中人 + 5 谢谢,问题解决;人非常耐心;沟通顺畅!

查看全部评分

回复 使用道具 举报
风中人
中级会员   /  发表于:2015-8-7 16:41:00
7#
回复 6楼iceman的帖子

最好一定!真的很想搞明白这套东西的好处---
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-10 10:19:00
8#
回复 7楼风中人的帖子

3# 中代码大部分都正确,只是添加公式的时机不对,请参考附件 Demo:
18092.zip (2.04 KB, 下载次数: 1218)
回复 使用道具 举报
风中人
中级会员   /  发表于:2015-8-10 10:58:00
9#
回复 8楼iceman的帖子

其实我主要是想问下,譬如乘法函数,有10,30二个值,结果为300;当10,30任一值在运行页面修改时,页面300的值会随着10,30的值变化而变化?

你可以理解?


如:
3.png
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-10 16:19:00
10#
回复 9楼风中人的帖子

理解您的需求包括两个问题:
1.自定义公式
2.自定义公式实现自动计算
以上均可以实现。

代码如下:

  1.   protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }

  7.             this.FpSpread1.ClientAutoCalculation = true;
  8.             this.FpSpread1.ActiveSheetView.ColumnCount = 5;

  9.             DefaultSheetDataModel dataModel = FpSpread1.ActiveSheetView.DataModel as FarPoint.Web.Spread.Model.DefaultSheetDataModel;
  10.             if (dataModel != null)
  11.             {
  12.                 dataModel.AddCustomFunction(new AverageFunctionInfo());
  13.             }

  14.             FpSpread1.ActiveSheetView.Cells[0, 0].Value = 1;
  15.             FpSpread1.ActiveSheetView.Cells[0, 1].Value = 2;
  16.             FpSpread1.ActiveSheetView.Cells[0, 2].Value = 3;
  17.             FpSpread1.ActiveSheetView.Cells[0, 3].Value = 4;

  18.             FpSpread1.ActiveSheetView.SetFormula(0, 4, "MyAverage(A1,B1,C1,D1)");
  19.         }

  20.         [Serializable]
  21.         public class AverageFunctionInfo : FunctionInfo
  22.         {
  23.             public override string Name { get { return "MyAverage"; } }
  24.             public override int MinArgs { get { return 1; } }
  25.             public override int MaxArgs { get { return 4; } }
  26.             public override object Evaluate(object[] args)
  27.             {
  28.                 int X = CalcConvert.ToInt(args[0]);
  29.                 int X1= CalcConvert.ToInt(args[1]);
  30.                 int X2= CalcConvert.ToInt(args[2]);
  31.                 int X3= CalcConvert.ToInt(args[3]);

  32.                 return ((X1-X/X)<=20&&((X2-X)/X)<=20&&((X3-X)/X)<=20);
  33.             }
  34.         }
复制代码
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部