Spread ASP.NET 6.0 Product Documentation
AddCustomFunction Method
See Also  Example Send Feedback
FarPoint.Web.Spread Assembly > FarPoint.Web.Spread.Model Namespace > DefaultSheetDataModel Class : AddCustomFunction Method


functionInfo
FunctionInfo object containing the user-defined function to add

Glossary Item Box

Adds a new user-defined custom function to the model for use in formulas.

Syntax

Visual Basic (Declaration) 
Public Sub AddCustomFunction( _
   ByVal functionInfo As FunctionInfo _
) 
Visual Basic (Usage)Copy Code
Dim instance As DefaultSheetDataModel
Dim functionInfo As FunctionInfo
 
instance.AddCustomFunction(functionInfo)
C# 
public void AddCustomFunction( 
   FunctionInfo functionInfo
)

Parameters

functionInfo
FunctionInfo object containing the user-defined function to add

Exceptions

ExceptionDescription
System.ArgumentNullException No function specified; function is a null reference (Nothing in Visual Basic)

Remarks

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.

Example

This example adds a custom function to the data model.
C#Copy Code
<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;	
}
Visual BasicCopy Code
<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

Requirements

Target Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, Windows Vista, Windows Server 2008 family

See Also

© 2002-2012 GrapeCity, Inc. All Rights Reserved.