更新日:
25/04/28
FPScript カスタム関数チュートリアル
FlexPro では、ユーザー独自の関数を FPScript でプログラミングし、テンプレートデータベースに保存することで、FPScript 数式内で作成した関数を呼び出すことができます。FPScript 関数は、少なくとも引数を1つ使用する FPScript で記述された数式です。引数は、Arguments 文を使用して1つまたは複数宣言することができます。
以下の事例では、データセットを正規化する関数をプログラムし、それを FPScript 関数として登録して使用する方法を学習します。
注意:この例は、FPScript 言語によるカスタム関数の実装に限定されています。外部ライブラリ(DLL)にアクセスして関数を開発したり、既存のアルゴリズムを FlexPro で利用できるようにする場合は、VBA または他のオートメーション対応プログラミング言語で FPScript のカスタム関数を実装する必要があります。詳しくは「カスタム FPScript 関数」を参照してください。
FPScript のカスタム関数を登録する
- 以下の FPScript コードを使って数式を作成します:
Arguments Data, NormalizeTo
If NormalizeTo == Empty Then
NormalizeTo = 1.
End
NormalizeTo * Data / Maximum(Data)
この数式は、Arguments 文によって関数に変換されます。関数を呼び出すときは引数のリストを指定する必要があります。
- オブジェクトリストで数式を選択し、「ホーム」 [選択したオブジェクト] > 「テンプレートとして保存」 をクリックします。
- テンプレートウィザードの最初の画面で、「テンプレートの種類」として 「FPScript 関数」を選択し、名前に Normalize と入力し、コメントに Normalizes a data set と入力します。
注意:FPScript 関数テンプレートタイプを選択できるのは、数式を1つだけ選択している場合のみです。また、最初の行の数式にはキーワード「Arguments」が含まれており、構文エラーがないことが必要です。
- 「次へ」をクリックします。引数 Data の説明として、「正規化するデータセット」と入力します。「使用可能なデータタイプ」として、16ビット整数から64ビット浮動小数点値までを選択します。「使用可能なデータ構造」として、「データシリーズ」と「シグナル」を選択します。
- 「次へ」をクリックします。引数 NormalizeTo の説明として、「データセットを正規化する値」を入力します。「使用可能なデータタイプ」として、「16ビット整数」から「64ビット浮動小数点値」までを選択します。「使用可能なデータ構造」として「スカラー値」を選択します。「デフォルト値」オプションを有効にし、「1」を入力します。
- 「次へ」をクリックします。ウィザードの最後の画面で設定内容とテンプレートの保存場所が「パーソナルテンプレートデータベース」であること確認します。ウィザードを閉じます。
- 以上で、関数 Normalize がテンプレートデータベースに保存されました。プロジェクトデータベースから削除できます。削除するには、オブジェクトリストから関数を選択し、キーボードの Delete キーを押してください。
FPScript のカスタム関数を使用する
- 挿入 [データ] > シグナル > サイン を選択してサインの合成シグナルを作成します。
- 次に、「挿入」[データ] >「数式」をクリックして空の数式を作成し、数式ツール > デザイン [FPScript の挿入] >「関数」をクリックします。カテゴリに「カスタム」を選択し、Normalize 関数を選択します。
- Data 引数には正規化するデータセット「シグナル」を入力し、NormalizeTo 引数には値 10 を入力します。
コードは次のようになります:
Normalize(シグナル, 10)
- オブジェクトリストで数式の名前をクリックします。プレビューに極値 +-10 の正弦曲線が表示されます。
FPScript のカスタム関数を企業ネットワーク上で提供する
注意:このオプションは、FlexPro Professional および Developer Suite でのみ使用できます。
- 新規プロジェクトデータベースを作成し、ネットワーク上の任意のフォルダーに 「FPScript ライブラリ」という名称で保存します。
- [ファイル] > [情報] > [オーガナイザー] をクリックし、[オーガナイザー] ダイアログ ボックスの [テンプレート] タブを選択します。
- 「共有テンプレート データベース」をクリックすると、同じ名称のダイアログボックスが開きます。作成した「FPScript ライブラリ」のパスをコピーして、新規ボタンをクリックします。
- 「貼り付け」をクリックし、リスト内の新しく作成されたフィールドの右側にあるボタンをクリックします。
- 先に保存したデータベースを選択し、OK をクリックして2つのダイアログを閉じます。
- 「オーガナイザー」ダイアログボックスで、「テンプレートタイプ」に「FPSCript 関数」を選択します。
- 左側の「アイテムが利用可能な場所」で、「FPScript ライブラリ」を選択します。リストに表示されない場合は、「プロジェクトデータベースを閉じる」をクリックし、「プロジェクトデータベースを開く」をクリックしてファイルを選択します。
- 右側の「アイテムが利用可能な場所」の下で、「パーソナルテンプレートデータベース」を選択します。
- リストボックスの右側で、関数 Normalize を選択したら、「コピー」をクリックして共有テンプレートデータベースにコピーします。
- 削除をクリックして、この関数を「パーソナルテンプレートデータベース」から削除します。
注意:テンプレート データベース「FPScript ライブラリ」に保存されている FPScript 関数を同僚が使用できるようにするには、手順 2 ~ 5 の説明に従って、「共有テンプレート データベース」リストにそれらの関数を入力する必要があります。
異なるテンプレートデータベースに同じ名前の関数が存在する場合、最も優先度の高いテンプレートデータベースからロードされます。適用される順番は以下のとおりです:
- パーソナルテンプレートデータベース
- 共有テンプレート データベースは、「共有テンプレート データベース」リストに入力された順番で表示されます。