[]
CalcEngine.Functions.AsyncFunction
↳ AsyncFunction
• new AsyncFunction(name
, minArgs?
, maxArgs?
, description?
)
非同期関数を定義するための抽象基本クラスを表します。
実例
class WeatherFunction extends GC.Spread.CalcEngine.Functions.AsyncFunction {
constructor () {
super('WEATHER', 0, 0, {
description: "Get Weather",
parameters: []
});
}
evaluate (context) {
setTimeout(function () { context.setAsyncResult('sunny'); }, 100);
}
}
spread.addCustomFunction(new WeatherFunction());
spread.getActiveSheet().setFormula(0, 0, '=WEATHER()');
名前 | 型 | 説明 |
---|---|---|
name |
string |
関数の名前。 |
minArgs? |
number |
- |
maxArgs? |
number |
- |
description? |
IFunctionDescription |
- |
• maxArgs: number
関数の引数の最大数を表します。
• minArgs: number
関数の引数の最小数を表します。
• name: string
関数の名前を表します。
• typeName: string
シリアル化のサポートに使用される型名の文字列を表します。
▸ acceptsArray(argIndex
): boolean
指定した引数に配列値が渡された場合に関数がこれを受け入れるかどうかを決定します。
function
名前 | 型 | 説明 |
---|---|---|
argIndex |
number |
引数のインデックス。 |
boolean
指定した引数に配列値が渡された場合に関数がこれを受け入れる場合はtrue
、それ以外の場合はfalse
。
▸ acceptsError(argIndex
): boolean
関数がError値を処理できるかどうかを示します。
function
名前 | 型 | 説明 |
---|---|---|
argIndex |
number |
引数のインデックス。 |
boolean
関数が指定した引数のError値を処理できる場合はtrue
、それ以外の場合はfalse
。
▸ acceptsMissingArgument(argIndex
): boolean
Evaluateメソッドが不明の引数を処理できるかどうかを判定します。
名前 | 型 | 説明 |
---|---|---|
argIndex |
number |
引数のインデックス |
boolean
Evaluateメソッドが欠落引数を処理できる場合はtrue
、それ以外の場合はfalse
。
Function.acceptsMissingArgument
▸ acceptsReference(argIndex
): boolean
指定した引数にReference値が渡された場合に関数がこれを受け入れるかどうかを決定します。
function
名前 | 型 | 説明 |
---|---|---|
argIndex |
number |
引数のインデックス。 |
boolean
指定した引数にReference値が渡された場合に関数がこれを受け入れる場合はtrue
、それ以外の場合はfalse
。
▸ defaultValue(): any
非同期結果を取得する前の関数評価結果のデフォルト値を返します。
any
非同期結果を取得する前の関数評価結果のデフォルト値。
▸ description(): IFunctionDescription
関数の記述を返します。
function
関数の記述。
▸ evaluate(...args
): any
引数に関数を適用した結果を返します。
名前 | 型 | 説明 |
---|---|---|
...args |
any |
関数の評価に使用する引数。 |
any
引数に関数を適用した結果。
▸ evaluateAsync(context
, args
): any
引数に関数を適用した結果を返します。
名前 | 型 | 説明 |
---|---|---|
context |
AsyncEvaluateContext |
評価コンテキスト。 |
args |
any |
関数の評価に使用する引数。 |
any
引数に関数を適用した結果。
▸ evaluateMode(): AsyncFunctionEvaluateMode
数式の再計算方法を決定します。
評価モード。
▸ 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(): 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
テスト条件として扱われる引数のインデックスを示します。
▸ interval(): number
時間間隔を返します。
number
時間間隔(ミリ秒単位)。
▸ 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(): boolean
関数の評価が、評価を実行するコンテキストに依存するかどうかを決定します。
boolean
関数の評価がコンテキストに依存する場合はtrue
、それ以外の場合はfalse
。
▸ isVolatile(): boolean
この関数が、評価時に値が変わる自動再計算関数かどうかを決定します。
boolean
この関数が自動再計算関数である場合はtrue
、それ以外の場合はfalse
。