| 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
| 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.
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 Basic | Copy 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 | |
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