Spread Windows Forms 13.0 Product Documentation
FarPoint.Win.Spread Assembly / FarPoint.Win.Spread Namespace / SheetView Class / GetCustomFunctionEnumerator Method
Example


In This Topic
    GetCustomFunctionEnumerator Method (SheetView)
    In This Topic
    Gets an IEnumerator for this sheet that enumerates through the names of the user-defined custom functions (FunctionInfo objects) in the model.
    Syntax
    'Declaration
     
    Public Function GetCustomFunctionEnumerator() As IEnumerator
    'Usage
     
    Dim instance As SheetView
    Dim value As IEnumerator
     
    value = instance.GetCustomFunctionEnumerator()
    public IEnumerator GetCustomFunctionEnumerator()

    Return Value

    IEnumerator object containing the enumerator for the custom function
    Remarks

    For more information on using custom functions in formulas, refer to the Formula Reference.

    Example
    This example illustrates the use of this member by returning an IEnumerator that enumerates through the names of the user-defined custom functions (Function objects) in the sheet.
    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;
          }
        }
    
    System.Collections.IEnumerator se;
    fpSpread1.ActiveSheet.AddCustomFunction(new CubeFunctionInfo());
    fpSpread1.ActiveSheet.AddCustomFunction(new MultiFunc());
    fpSpread1.ActiveSheet.SetFormula(1, 1, "CUBE(4)");
    fpSpread1.ActiveSheet.SetFormula(2, 2, "MULTI(10)");
    se = fpSpread1.ActiveSheet.GetCustomFunctionEnumerator();
    listBox1.Items.AddRange(new Object[] {se.MoveNext().ToString(), se.Current.ToString(), se.MoveNext().ToString(), se.Current.ToString()});
    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 se As System.Collections.IEnumerator
    FpSpread1.ActiveSheet.AddCustomFunction(New CubeFunctionInfo())
    FpSpread1.ActiveSheet.AddCustomFunction(New MultiFunc())
    FpSpread1.ActiveSheet.SetFormula(1, 1, "CUBE(4)")
    FpSpread1.ActiveSheet.SetFormula(2, 2, "MULTI(10)")
    se = FpSpread1.ActiveSheet.GetCustomFunctionEnumerator()
    ListBox1.Items.AddRange(New Object() {se.MoveNext().ToString(), se.Current().ToString(), se.MoveNext().ToString(), se.Current().ToString()})
    See Also