| FarPoint.Web.Spread Assembly > FarPoint.Web.Spread.Model Namespace > DefaultSheetDataModel Class : AddCustomFunction Method |
'Declaration Public Sub AddCustomFunction( _ ByVal functionInfo As FunctionInfo _ )
'Usage Dim instance As DefaultSheetDataModel Dim functionInfo As FunctionInfo instance.AddCustomFunction(functionInfo)
public void AddCustomFunction( FunctionInfo functionInfo )
| Exception | Description |
|---|---|
| System.ArgumentNullException | No function specified; function is a null reference (Nothing in Visual Basic) |
A user-defined function (FunctionInfo object) must be marked with the Serializable attribute or an exception occurs if the data model is saved to view state, a file, or otherwise serialized.
For more information on using custom functions in formulas, refer to the Formula Reference.
<Serializable()>
public class CubeFunctionInfo : FarPoint.CalcEngine.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 = FarPoint.CalcEngine.CalcConvert.ToDouble(args[0]);
return num * num * num;
}
}
private void PageLoad(object sender, System.EventArgs e)
{
FarPoint.Web.Spread.Model.DefaultSheetDataModel dataModel = new FarPoint.Web.Spread.Model.DefaultSheetDataModel(5, 5);
dataModel.AddCustomFunction(new CubeFunctionInfo());
dataModel.SetFormula(1, 1, "CUBE(4)");
FpSpread1.ActiveSheetView.DataModel = dataModel;
}
<Serializable()> Public Class CubeFunctionInfo Inherits FarPoint.CalcEngine.FunctionInfo Public Overrides ReadOnly Property Name() As String Get Return "CUBE" End Get End Property Public Overrides ReadOnly Property MinArgs() As Integer Get Return 1 End Get End Property Public Overrides ReadOnly Property MaxArgs() As Integer Get Return 1 End Get End Property Public Overrides Function Evaluate(ByVal args() As Object) As Object Dim num As Double = FarPoint.CalcEngine.CalcConvert.ToDouble(args(0)) Return num * num * num End Function End Class Private Sub PageLoad(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dataModel As New FarPoint.Web.Spread.Model.DefaultSheetDataModel(5, 5) dataModel.AddCustomFunction(New CubeFunctionInfo) dataModel.SetFormula(1, 1, "CUBE(4)") FpSpread1.ActiveSheetView.DataModel = dataModel End Sub
Target Platforms: Windows 7, Windows 8, Windows Vista, Windows Server 2000, Windows 2000 Professional, Windows XP Professional, Windows NT 4.0 Workstation, SP6, Windows NT 4.0 Server, SP6