一.CLASS
1.概要
文法 | CLASS(object) | 指定されたオブジェクトobjectの型を返します。 |
---|---|---|
パラメータ | object | オブジェクト |
戻り値 | String | - |
2.例
数式 | 結果 |
---|---|
CLASS(121) | class java.lang.Integer |
二.CORREL——相関係数を求める
1.概要
文法 | CORREL(array1,array2) | 同じ長さを持つデータ系列の相関係数を求める関数です(エクセルのCORREL関数と同じ機能) |
---|---|---|
パラメータ1 | array1 | データ系列1 |
パラメータ2 | array2 | データ系列2 |
戻り値 | Number | [-1,1]範囲に収まる相関係数の値を返します。相関係数の絶対値が大きいほどその相関関係が強いです。 |
2.注意事項
Array1とArray2が同じ数のデータポイントを持つことを前提とします。
配列や参照パラメーターにテキスト、論理値または空白セルが含まれる場合、これらの値が処理対象外となりますが、ゼロ値のセルなら対象内となります。
関数の計算結果が負数である場合、負の相関関係にあると意味します。
3.例
数式 | 結果 |
---|---|
CORREL([1,2,3],[2,4,6]) | 1 |
三.EVAL——式expの計算結果を返す
1.概要
文法 | EVAL(exp) | 指定された式expの計算結果を返します |
---|---|---|
パラメータ | exp | 一つの文字列数式。 |
戻り値 | Number | - |
2.注意事項
EVALのパラメータであるexpが式に変換できる文字列でなければ計算できません。例えば、"sum(2,4)"、"2+7"などは計算できます。
3.例
数式 | 結果 |
---|---|
EVAL("2+5") | 7 |
EVAL("count(2,3)") | 2 |
EVAL("sum"+"(2,3,5)") | 10 |
EVAL(IF(true,"sum","count")+"(1,2,3,4)") | 10 |
EVAL(IF(false,"sum","count")+"(1,2,3,4)") | 4 |
四.INDEX——位置を返します
1.概要
文法 | INDEX((key,val1,val2,...) | val1、val2などからなる文字列におけるkeyの位置を返します。その文字列に存在しなければ、パラメータの数を返します。 |
---|---|---|
パラメータ1 | exp | keyとvalnはいずれも任意の型です。 |
パラメータ2 | val1,val2,... | |
戻り値 | Number | - |
2.例
数式 | 結果 |
---|---|
INDEX(2,2) | 1 |
INDEX(2,1,2) | 2 |
INDEX(2,4,5,6) | 4 |
INDEX("b","b","o","y") | 1 |
五.ISNULL——NULLかどうかを判定
1.概要
文法 | ISNULL(object) | 指定されたオブジェクトの値はすべてNULL、又は空文字列かどうかを判定します。 |
---|---|---|
パラメータ | object | 判定必要なオブジェクト。結果は空文字かnullの場合、「true」を返します。そうでなければ「false」を返します。 |
戻り値 | String | - |
2.例
数式ISNULL(A1)を入力し、帳票をプレビューすると、効果は下図の通りです。
六.LET——ローカル変数に値を代入
1.概要
文法 | LET(変数名,変数に入れる値,変数名,変数に入れる値,..., 式) | ローカル変数に値を代入する関数です。 |
---|---|---|
パラメータ1 | 変数名 | 変数名は必ずアルファベットから始まり、アルファベット、数字又は下線からなる有効なものでなければなりません。 |
パラメータ2 | 変数に入れる値 | パラメータの数Nは奇数でなければなりません。最後のパラメータは式となり、その前のN-1(偶数)は値を代入するローカル変数のセットです。 |
パラメータ3 | 式 | 値を代入したその前のN-1のパラメータを計算します。これらの変数と値の代入はこの式内でのみ有効です。 |
戻り値 | Number | - |
2.例
数式 | 結果 |
---|---|
LET(a, 5,b, 6, a+b) | 11 |
七.MEDIAN——中央値
MEDIAN(array1):データ系列の中央値を返します(エクセルのMEDIAN関数と同じ機能です)。
1.データ要素の数が奇数の場合、その真ん中の数値を取得します。
例 | 結果 |
---|---|
MEDIAN([1,2,3]) | 2 |
2.データ要素の数が偶数の場合、その真ん中の2つの数値の平均を取得します。
例 | 結果 |
---|---|
MEDIAN(1,2,3,-1) | 1.5 |
注:8.0と8.0以降のバージョンの帳票サーバを使う場合、計算前に帳票はデータ要素の数値を自動的に並べ替えてから、その中央値を取得するため、1.5という正しい結果が返されます。8.0以前のバージョンなら、帳票は数値を並べ替えずに、入力したものの両側の数値をそのまま取り除いて真ん中の2つの数値の平均を取得するため、2.5という間違った結果が返されます。
八.NVL——nullではない最初の値valueを返す
1.概要
文法 | NVL(value1,value2) | Nullではない最初の値valueを返します。 例えば、value1がnullでなければ、value1の値を返します。そうでなければvalue2の値を返します。もしvalue1もvalue2もnullであれば、nullを返します。 |
---|---|---|
パラメータ1 | value1 | 任意の数かnullを入力します。 |
パラメータ2 | value2 | 任意の数かnullを入力します。 |
戻り値 | Number | - |
2.注意事項
ここのNVL(value1,value2)はショートカット演算子となります。すなわち、最初のパラメータがNULLでなければ、その値を直接返し、後ろのパラメータを見る必要がなくなります。もちろん、最初のパラメータがnullであってもいいです。
3.例
数式 | 結果 |
---|---|
NVL(12,20) | 12 |
NVL(null,12) | 12 |
九.RANK——順位を返す
1.概要
文法 | RANK(number,ref,order) | 一配列において指定された数値の順位を返します。(配列の数値を並べ替えてから入力すると、同数値の順位はすなわち配列における同数値の順番になります。) |
---|---|---|
パラメータ1 | number | 順位が求められる数値、Boolean型でもいいです。true=1、false=0。 |
パラメータ2 | Ref | 配列か、参照かまたは一連の数値を入力します。実数でない数値は処理されません。Boolean型でもいいです。true=1、false=0。 |
パラメータ3 | Order | 順位を求め、順序を指定するパラメータです。ゼロでなければ昇順、ゼロなら降順となります。 |
戻り値 | Number | - |
2.注意事項
RANK関数で、同じ値が同順位になり、その重複の数は後ろの値の順位に影響します。例えば、昇順で並び替えられた整数の配列で、5は二つあり、いずれの順位も3となりますが、その後ろにつく6の順位は5となります(順位が4となる値がありません)。
3.例
例 | 結果 |
---|---|
A1:A5 = 6, 4.5, 4.5, 2, 4の場合、 RANK(A1,A1:A5,1) | 5 昇順での順位を求める場合、A1の「6」の順位は5となります |
RANK(3,1,2,”go”,3,4,1) | 3 “go”は処理対象外となります |
十.SEQ——実行回数
SEQ():数値を返します。帳票ごとの実行過程の中で、同関数が何回目実行されたかを返します。
例 | 結果 |
---|---|
SEQ() | 初めて実行された時、「1」が返されます |
二回目実行された時、「2」が返されます |
十一.STDEV——標準偏差
STDEV(array1):データ系列の標準偏差を計算します(エクセルのSTDEV関数と同じ機能です)。
例 | 結果 |
---|---|
STDEV([1,2,3]) | 1 |
十二.TOIMAGE——画像を表示
1.概要
文法 | TOIMAGE(path) | 指定されたパスの画像を表示させます |
---|---|---|
パラメータ | path | 取得しようとする画像のパス |
2.注意事項
帳票の生成のスピードを上げるため、この関数は画像のキャッシュ機能をデフォルトとしてオンにしています。キャッシュ機能を必要としない場合、パラメータの後ろにFALSEという値を付け加えます。
3.例
数式 | 結果 |
---|---|
TOIMAGE("D:/fr.png",false) | 指定された画像が表示されます |
十三.WEBIMAGE——Webページ上の画像を表示
1.概要
文法 | WEBIMAGE(path) | Webページ上の画像を表示させます。Webページ上の画像の表示速度を上げられます。 |
---|---|---|
パラメータ | path | 画像のWebページのパス |
2.例
数式 | 結果 |
---|---|
WEBIMAGE('http://www.fanruan.com/images/index2.jpg') | 指定された画像が表示されます |
十四.UUID——ランダムな文字列を返す
1.概要
文法 | UUID() | ランダムUUIDを返します |
---|---|---|
パラメータ | 空/32 | 36文字か32文字のランダムな文字列を返します |
戻り値 | String | - |
2.例
次のように、現在は36文字と32文字のランダムな文字列のみサポートしています。
数式 | 結果 | 備考 |
---|---|---|
UUID() | 36文字のランダムな文字列が返されます。例えば、ad342e21-fc60-4de3-8f20-126f6ac60a50 | - |
UUID(32) | 32文字のランダムな文字列が返されます。例えば、4400a7ddeece4e568803a64634edd6e4 | - |
下図のように、デザイナの中に数式を入力すると、
次の結果が表示されます。
十五.QUERY——JSONテキストを解析
FineReport10.0(2019-03-01)から、JSONテキストの解析にQUERY関数をサポートしています。機能は主に二つあります。
1.ビルトインパラメータ $fine_positionから値を抽出できます。
例:
=<mark>query</mark>($fine_position, "function(){return $ instanceof Array ? $.map(el => el.jobTitle):$.jobTitle}"
2.帳票の展示に、JSON文字列から特定の値を抽出できます。帳票内のテキスト関数によって文字列を分割したりすることが避けられます。
関数における一つ目のパラメータは、JSON文字列か、普通の文字列である処理対象の文字列となります。
関数における二つ目のパラメータはクエリ文で、有効なJavaScript文となります。そのうち、$を使って一つ目のパラメータの値を表します。演算対象になることが可能です。
関数呼び出し | 結果 |
---|---|
QUERY("{\"job\":\"運転手\",\"age\":45}", "$.age") | 45 |
QUERY("{\"job\":\"運転手\",\"age\":45}", "function() {return $.age > 50 ? 100 : 0}") | 0 |
QUERY(" [\"a\",\"b\"]", "$") | ["a","b"] |
QUERY(" [\"a\",\"b\"]", "$[1]") | "b" |
QUERY("{\"value\":20.5,\"status\":true}", "$.status") | true |
QUERY("{\"value\":20.5,\"status\":true}", "$.value") | 20.5 |
QUERY("hello", "$") | "hello" |
QUERY("hello", "$.slice(0, 3)") | "hel" |
QUERY("hello", "$ + \" world\"") | "hello world" |