Spread ASP.NET 14
FarPoint.Web.Spread Assembly / FarPoint.Web.Spread.Model Namespace / DefaultSheetDataModel Class / GetCustomFunctionEnumerator Method
Example


In This Topic
    GetCustomFunctionEnumerator Method (DefaultSheetDataModel)
    In This Topic
    Gets an IEnumerator that enumerates through the names of the custom functions in the model.
    Syntax
    'Declaration
     
    Public Function GetCustomFunctionEnumerator() As IEnumerator
    'Usage
     
    Dim instance As DefaultSheetDataModel
    Dim value As IEnumerator
     
    value = instance.GetCustomFunctionEnumerator()
    public IEnumerator GetCustomFunctionEnumerator()

    Return Value

    IEnumerator setting for the custom function
    Example
    This example returns a user-defined custom function from the model.
    <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; 
          } 
        } 
        
    private void PageLoad(object sender, System.EventArgs e)
    {
        FarPoint.Web.Spread.Model.DefaultSheetDataModel dataModel = new FarPoint.Web.Spread.Model.DefaultSheetDataModel(5, 5); 
        System.Collections.IEnumerator se; 
        dataModel.AddCustomFunction(new CubeFunctionInfo()); 
        dataModel.AddCustomFunction(new MultiFunc()); 
        FpSpread1.ActiveSheetView.SetFormula(1, 1, "CUBE(4)"); 
        FpSpread1.ActiveSheetView.SetFormula(2, 2, "MULTI(10)"); 
        FpSpread1.ActiveSheetView.DataModel = dataModel; 
        se = dataModel.GetCustomFunctionEnumerator(); 
        se.MoveNext(); 
        Response.Write(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
    
    
    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)
    Dim se As System.Collections.IEnumerator
    dataModel.AddCustomFunction(New CubeFunctionInfo)
    dataModel.AddCustomFunction(New MultiFunc)
    FpSpread1.ActiveSheetView.SetFormula(1, 1, "CUBE(4)")
    FpSpread1.ActiveSheetView.SetFormula(2, 2, "MULTI(10)")
    
    FpSpread1.ActiveSheetView.DataModel = dataModel
    
    se = dataModel.GetCustomFunctionEnumerator()
    se.MoveNext()
    Response.Write(se.Current.ToString())
    End Sub
    See Also