Spread for ASP.NET 13 Product Documentation
FarPoint.Web.Spread Assembly / FarPoint.Web.Spread.Model Namespace / ICustomFunctionSupport Interface / GetCustomFunctionEnumerator Method
Example


In This Topic
    GetCustomFunctionEnumerator Method (ICustomFunctionSupport)
    In This Topic
    Gets an IEnumerator that enumerates through the names of the user-defined functions in the model.
    Syntax
    'Declaration
     
    Function GetCustomFunctionEnumerator() As IEnumerator
    'Usage
     
    Dim instance As ICustomFunctionSupport
    Dim value As IEnumerator
     
    value = instance.GetCustomFunctionEnumerator()
    IEnumerator GetCustomFunctionEnumerator()

    Return Value

    IEnumerator containing the custom function enumerator
    Example
    <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; 
            } 
    } 
        
    <Serializable()>
        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.Web.Spread.Model.ICustomFunctionSupport cfs; 
    System.Collections.IEnumerator se; 
    cfs = (FarPoint.Web.Spread.Model.ICustomFunctionSupport)FpSpread1.ActiveSheetView.DataModel; 
    cfs.AddCustomFunction(new CubeFunctionInfo()); 
    cfs.AddCustomFunction(new MultiFunc()); 
    FpSpread1.ActiveSheetView.SetFormula(1, 1, "CUBE(4)"); 
    FpSpread1.ActiveSheetView.SetFormula(2, 2, "MULTI(10)"); 
    se = cfs.GetCustomFunctionEnumerator(); 
    Response.Write(new Object[] {se.MoveNext().ToString(), se.Current().ToString()});
    
    <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
    
    <Serializable()> 
    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.Web.Spread.Model.ICustomFunctionSupport
    Dim se As System.Collections.IEnumerator
    cfs = FpSpread1.ActiveSheetView.DataModel
    cfs.AddCustomFunction(New CubeFunctionInfo)
    cfs.AddCustomFunction(New MultiFunc)
    FpSpread1.ActiveSheetView.SetFormula(1, 1, "CUBE(4)")
    FpSpread1.ActiveSheetView.SetFormula(2, 2, "MULTI(10)")
    se = cfs.GetCustomFunctionEnumerator()
    Response.Write(New Object() {se.MoveNext().ToString(), se.Current().ToString()})
    
    See Also