Spread Windows Forms 7.0 Product Documentation
GetCustomFunctionEnumerator Method
See Also  Example Support Options
FarPoint.Win.Spread Assembly > FarPoint.Win.Spread.Model Namespace > ICustomFunctionSupport Interface : GetCustomFunctionEnumerator Method


Glossary Item Box

Gets an IEnumerator that enumerates through the names of the user-defined functions in the model.

Syntax

Visual Basic (Declaration) 
Function GetCustomFunctionEnumerator() As IEnumerator
Visual Basic (Usage)Copy Code
Dim instance As ICustomFunctionSupport
Dim value As IEnumerator
 
value = instance.GetCustomFunctionEnumerator()
C# 
IEnumerator GetCustomFunctionEnumerator()

Return Value

IEnumerator containing the enumerator for the custom function

Example

This example returns an IEnumerator that enumerates through the names of the user-defined custom functions (Function objects).
C#Copy Code
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;
      }
    }

public class MultiFunc : FarPoint.CalcEngine.FunctionInfo
    {
      public override string Name { get { return "MULTI"; } }
      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;
      }
    }

FarPoint.Win.Spread.Model.ICustomFunctionSupport cfs;
System.Collections.IEnumerator se;
cfs = (FarPoint.Win.Spread.Model.ICustomFunctionSupport)fpSpread1.ActiveSheet.Models.Data;
cfs.AddCustomFunction(new CubeFunctionInfo());
cfs.AddCustomFunction(new MultiFunc());
fpSpread1.ActiveSheet.SetFormula(1, 1, "CUBE(4)");
fpSpread1.ActiveSheet.SetFormula(2, 2, "MULTI(10)");
se = cfs.GetCustomFunctionEnumerator();
listBox1.Items.AddRange(new Object[] {se.MoveNext().ToString(), se.Current.ToString(), se.MoveNext().ToString(), se.Current.ToString()});
Visual BasicCopy Code
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

Public Class MultiFunc
Inherits FarPoint.CalcEngine.FunctionInfo

   Public Overrides ReadOnly Property Name() As String
        Get
             Return "MULTI"
        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
   End Function
End Class


Dim cfs As FarPoint.Win.Spread.Model.ICustomFunctionSupport
Dim se As System.Collections.IEnumerator
cfs = FpSpread1.ActiveSheet.Models.Data
cfs.AddCustomFunction(New CubeFunctionInfo())
cfs.AddCustomFunction(New MultiFunc())
FpSpread1.ActiveSheet.SetFormula(1, 1, "CUBE(4)")
FpSpread1.ActiveSheet.SetFormula(2, 2, "MULTI(10)")
se = cfs.GetCustomFunctionEnumerator()
ListBox1.Items.AddRange(New Object() {se.MoveNext().ToString(), se.Current().ToString(), se.MoveNext().ToString(), se.Current().ToString()})

Requirements

Target Platforms: Windows 2000 Professional (SP4), Windows 2000 Server, Windows 2003 Server (SP1), Windows 2008, Windows XP (SP2), Windows Vista, Windows 7, Windows 8

See Also

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