彩票走势图

Spread ASP.NET如何创建自定义函数

原创|其它|编辑:郝浩|2012-11-19 10:59:23.000|阅读 298 次

概述:如果你在Spread ASP.NET创建应用程序中需要定期使用不在内置函数里的一些其他的函数,又或者说你想要将一些内置的功能添加到单个函数上,你可以通过自定义函数来实现,那么你就可以将其作为内置的函数进行调用了。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

如果你在创建应用程序中需要定期使用不在内置函数里的一些其他的函数,又或者说你想要将一些内置的功能添加到单个函数上,你可以通过自定义函数来实现,那么你就可以将其作为内置的函数进行调用了。

自定义函数可以同内置函数有一样的名字,单数自定义函数优先于内置的函数,自定义功能被动态的链接到评估时间,所以应用程序可以定义一个现有的自定义函数。

来看一下实例:

第一步就是创建自定义函数,在这个例子里面呢,有一个多维的数学函数,一个XOR逻辑函数,以及一个空字符串函数,将通过下面的代码实现自定义功能:

C#代码如下:

public class CubeFunctionInfo : FunctionInfo
{
public override string Name { get { return "CUBE"; } } 
public override int MinArgs { get { return 1; } }
public override int MaxArgs { get { return 1; } }
public override object Evaluate (object[] args)
{
double num = CalcConvert.ToDouble(args[0]);
return num * num * num;
}
}

XOR自定义函数执行异或运算两个布尔值,这类似于在C 中的“^”操作符或在VB中XOR运算符。

C#代码如下:

public class XorFunctionInfo : FunctionInfo
{
public override string Name { get { return "XOR"; } }
public override int MinArgs { get { return 2; } }
public override int MaxArgs { get { return 2; } }
public override object Evaluate (object[] args)
{
bool arg0 = CalcConvert.ToBool(args[0]);
bool arg1 = CalcConvert.ToBool(args[1]);
return (arg0 || arg1) && (arg0 != arg1);
}
}

空函数返回空值,类似于FALSE()函数返回假的常量值。

C#代码如下:

public class NullFunctionInfo : FunctionInfo
{
public override string Name { get { return "NULL"; } } 
public override int MinArgs { get { return 0; } }
public override int MaxArgs { get { return 0; } }
public override object Evaluate (object[] args)
{
return null;
}
}

第二步就是用下面的代码生成自定义函数。

FpSpread1.ActiveSheetView.AddCustomFunction(new CubeFunctionInfo());
FpSpread1.ActiveSheetView.AddCustomFunction(new XorFunctionInfo());
FpSpread1.ActiveSheetView.AddCustomFunction(new NullFunctionInfo());

第三步就是在公式中使用自定义函数,如下代码所示:

C#代码如下:

FpSpread1.ActiveSheetView.SetFormula(0, 0, "CUBE(5)");
FpSpread1.ActiveSheetView.SetFormula(1, 0, "XOR(FALSE,FALSE)");
FpSpread1.ActiveSheetView.SetFormula(1, 1, "XOR(TRUE,FALSE)");
FpSpread1.ActiveSheetView.SetFormula(1, 2, "XOR(FALSE,TRUE)");
FpSpread1.ActiveSheetView.SetFormula(1, 3, "XOR(TRUE,TRUE)");
FpSpread1.ActiveSheetView.SetFormula(2, 0, "CHOOSE(1,100,NULL(),300)");
FpSpread1.ActiveSheetView.SetFormula(2, 1, "CHOOSE(2,100,NULL(),300)");
FpSpread1.ActiveSheetView.SetFormula(2, 2, "CHOOSE(3,100,NULL(),300)");

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP