[]
        
(Showing Draft Content)

GC.Spread.CalcEngine.Functions.Function

クラス: Function

CalcEngine.Functions.Function

階層

Table of contents

コンストラクタ

プロパティ

メソッド

コンストラクタ

constructor

new Function(name, minArgs?, maxArgs?, functionDescription?)

関数を定義するための抽象基本クラスを表します。

実例

class FactorialFunction extends GC.Spread.CalcEngine.Functions.Function {
    constructor () {
        super('FACTORIAL', 1, 1, {
            description: "Function to calculate the Fibonacci number.",
            parameters: [{ name: 'n' }]
        });
    }
    evaluate (n) {
        var fib = [0, 1];
        for (var i = 2; i <= n; i++) {
          fib[i] = fib[i - 1] + fib[i - 2];
        }
        return fib[n];
    }
}
spread.addCustomFunction(new FactorialFunction());
spread.getActiveSheet().setFormula(0, 0, '=FACTORIAL(10)');

パラメータ

名前 説明
name string 関数の名前。
minArgs? number -
maxArgs? number -
functionDescription? IFunctionDescription -

プロパティ

maxArgs

maxArgs: number

関数の引数の最大数を表します。


minArgs

minArgs: number

関数の引数の最小数を表します。


name

name: string

関数の名前を表します。


typeName

typeName: string

シリアル化のサポートに使用される型名の文字列を表します。

メソッド

acceptsArray

acceptsArray(argIndex): boolean

指定した引数に配列値が渡された場合に関数がこれを受け入れるかどうかを決定します。

function

パラメータ

名前 説明
argIndex number 引数のインデックス。

戻り値

boolean

指定した引数に配列値が渡された場合に関数がこれを受け入れる場合はtrue、それ以外の場合はfalse


acceptsError

acceptsError(argIndex): boolean

関数がError値を処理できるかどうかを示します。

function

パラメータ

名前 説明
argIndex number 引数のインデックス。

戻り値

boolean

関数が指定した引数のError値を処理できる場合はtrue、それ以外の場合はfalse


acceptsMissingArgument

acceptsMissingArgument(argIndex): boolean

Evaluateメソッドが不明の引数を処理できるかどうかを判定します。

パラメータ

名前 説明
argIndex number 引数のインデックス

戻り値

boolean

Evaluateメソッドが欠落引数を処理できる場合はtrue、それ以外の場合はfalse


acceptsReference

acceptsReference(argIndex): boolean

指定した引数にReference値が渡された場合に関数がこれを受け入れるかどうかを決定します。

function

パラメータ

名前 説明
argIndex number 引数のインデックス。

戻り値

boolean

指定した引数にReference値が渡された場合に関数がこれを受け入れる場合はtrue、それ以外の場合はfalse


description

description(): IFunctionDescription

関数の記述を返します。

function

戻り値

IFunctionDescription

関数の記述。


evaluate

evaluate(...args): any

引数に関数を適用した結果を返します。

パラメータ

名前 説明
...args any 関数の評価に使用する引数。

戻り値

any

引数に関数を適用した結果。


findBranchArgument

findBranchArgument(test): number

分岐引数を検索します。

実例

function EqualsFunction() {
    this.name = 'Equals';
    this.maxArgs = 3;
    this.minArgs = 3;
}
EqualsFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
EqualsFunction.prototype.evaluate = function(logicalTest, valueIfTrue, valueIfFalse) {
    return logicalTest ? valueIfTrue : valueIfFalse;
}
EqualsFunction.prototype.isBranch = function() {
    return true;
}
EqualsFunction.prototype.findTestArgument = function() {
    return 0;
}
EqualsFunction.prototype.findBranchArgument = function(logicalTestResult) {
    if (logicalTestResult === true) {
        return 1;
    }
    return 2;
}
var equalsFunction = new EqualsFunction();
var spread = GC.Spread.Sheets.findControl("ss") || GC.Spread.Sheets.findControl("sampleDiv");
spread.addCustomFunction(equalsFunction);

パラメータ

名前 説明
test any テスト。

戻り値

number

分岐条件として扱われる引数のインデックスを示します。


findTestArgument

findTestArgument(): number

この関数が分岐する場合にテスト引数を検索します。

実例

function EqualsFunction() {
    this.name = 'Equals';
    this.maxArgs = 3;
    this.minArgs = 3;
}
EqualsFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
EqualsFunction.prototype.evaluate = function(logicalTest, valueIfTrue, valueIfFalse) {
    return logicalTest ? valueIfTrue : valueIfFalse;
}
EqualsFunction.prototype.isBranch = function() {
    return true;
}
EqualsFunction.prototype.findTestArgument = function() {
    return 0;
}
EqualsFunction.prototype.findBranchArgument = function(logicalTestResult) {
    if (logicalTestResult === true) {
        return 1;
    }
    return 2;
}
var equalsFunction = new EqualsFunction();
var spread = GC.Spread.Sheets.findControl("ss") || GC.Spread.Sheets.findControl("sampleDiv");
spread.addCustomFunction(equalsFunction);

戻り値

number

テスト条件として扱われる引数のインデックスを示します。


isBranch

isBranch(): boolean

この関数が条件引数に従って分岐するかどうかを示す値を取得します。

実例

function EqualsFunction() {
    this.name = 'Equals';
    this.maxArgs = 3;
    this.minArgs = 3;
}
EqualsFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
EqualsFunction.prototype.evaluate = function(logicalTest, valueIfTrue, valueIfFalse) {
    return logicalTest ? valueIfTrue : valueIfFalse;
}
EqualsFunction.prototype.isBranch = function() {
    return true;
}
EqualsFunction.prototype.findTestArgument = function() {
    return 0;
}
EqualsFunction.prototype.findBranchArgument = function(logicalTestResult) {
    if (logicalTestResult === true) {
        return 1;
    }
    return 2;
}
var equalsFunction = new EqualsFunction();
var spread = GC.Spread.Sheets.findControl("ss") || GC.Spread.Sheets.findControl("sampleDiv");
spread.addCustomFunction(equalsFunction);

戻り値

boolean

このインスタンスが分岐する場合はtrue、それ以外の場合はfalse


isContextSensitive

isContextSensitive(): boolean

関数の評価が、評価を実行するコンテキストに依存するかどうかを決定します。

戻り値

boolean

関数の評価がコンテキストに依存する場合はtrue、それ以外の場合はfalse


isVolatile

isVolatile(): boolean

この関数が、評価時に値が変わる自動再計算関数かどうかを決定します。

戻り値

boolean

この関数が自動再計算関数である場合はtrue、それ以外の場合はfalse