その他関数

  • 作成者:ayuan0625
  • 編集回数:24次
  • 最終更新:FRInternational 于 2021-11-27
  • 一.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"


    Attachment List


    Theme: FineReport 帳票実例
    既に最初
    既に最後
    • Helpful
    • Not helpful
    • Only read