Spread for ASP.NET 7.0 Product Documentation
AddCustomFunction Method
See Also  Example Support Options
FarPoint.Web.Spread Assembly > FarPoint.Web.Spread.Model Namespace > DefaultSheetDataModel Class : AddCustomFunction Method


functionInfo
FunctionInfo object that contains 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 that contains 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 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

See Also

© 2002-2014 ComponentOne, a division of GrapeCity. All Rights Reserved.