| FarPoint.Web.Spread.Model 名前空間 > DefaultSheetDataModel クラス : AddCustomFunction メソッド |
'DeclarationPublic Sub AddCustomFunction( _ ByVal functionInfo As FunctionInfo _ )
public void AddCustomFunction( FunctionInfo functionInfo )
| 例外 | 説明 |
|---|---|
| System.ArgumentNullException | 関数が指定されていません。関数が NULL 参照(Visual Basic の Nothing)です。 |
ユーザー定義関数(FunctionInfoオブジェクト)は、Serializable属性でマークする必要があります。マークしていない場合、データモデルをビューステートとしてファイルに保存するときに例外が発生します。マークしていればシリアル化されます。
数式でのカスタム関数の使用の詳細については、「数式リファレンス」を参照してください。
[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;
}
<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