目次
Platio式とは
Platioアプリでは、フィールドに入力した値を参照して、四則演算や文字列の連結などの計算を行い、別のフィールドの値として設定することができます。また、それらの計算結果によって、フィールドの色や表示・非表示を切り替えることもできます。
このような計算を記述するためにPlatio式という仕組みを使い、データポケットのフィールドプロパティや検知の条件などに記述して利用します。
Platio式は、JavaScriptの式に良く似ていますが、JavaScriptの全ての機能を使えるわけではありません。(JavaScriptを理解していなくても、簡単な数値の四則演算や文字列の連結は、四則演算の演算子の記号で簡単に生成することができます。)
Platio式の仕様について詳しくは、Platio開発者ドキュメント「Platio式」を参照してください。
《利用例》
単価フィールドと発注数フィールドの値を掛け合わせた値を、合計金額フィールドに設定したい
Platio式の動作と初期値・計算フィールド
Platio式は、Platio Studioで計算系フィールドやフィールドプロパティの初期値などに記述します。Platioアプリで入力するとき、Platio式で参照しているフィールドに値が入力されると自動で計算された結果が設定されます。レコードを編集するときは、Platio式で参照しているフィールドの値が編集されたときに再計算された結果が設定されます。
※参照しているフィールドは、Platio式を記述するフィールドよりも前に配置する必要があります。
データビューアーでデータポケットのレコードを作成したときは自動で計算されません。データビューアーでレコードを作成して保存した後に、Platioアプリで同じレコードを編集すると(編集シーンでレコードを開くと)自動で計算されます。編集シーンでレコードを保存して計算フィールドに計算した値を登録できます。
Platio式を使うフィールドを非表示にする
Platio式を使うフィールドをPlatioアプリでは非表示にしたい場合、シーンのフィールドを「計算」にします。
データポケットのシーンのフィールド設定で「なし」「表示」のときPlatio式の値は設定されません。
フィールドID
Platio式でどのフィールドの値を参照するかを指定するためにフィールドIDを利用します。フィールドIDは、Platio Studioの中で各フィールドを識別するためのIDで、cから始まる7桁の英数字IDの8文字で構成されます。
《フィールドIDの例》
c825b92d
フィールドIDは、Platio StudioでフィールドプロパティのPlatio式を利用できる部分をクリックすると自動で参照できます。
また、右メニュー「管理」の「開発者向け情報」でも参照できます。
※ 開発者向け用語ではフィールドIDのことをカラムIDといいます。
フィールドプロパティでPlatio式を記述する手順
フィールドプロパティでは、下記の手順でPlatio式で記述します。
①計算系フィールドを追加します。(任意でフィールド名を変更します。)
②フィールドの右上にある設定アイコンをクリックしてフィールドプロパティを表示します。
③「値」の右にあるマークをクリックすると「フィールド名(フィールドID)」の形式で一覧が表示されます。フィールド名をクリックすると以下の形式でフィールドIDが自動挿入されます。/* */で囲まれた部分はコメントの扱いになり、計算には影響しません。
フィールドID /* フィールド名 */
④Platio式を記述します。
Platio式の記述例
ここでは、よく使われる記述について解説します。
※下記のPlatio式中のcabc1234、cxyz5678はフィールドIDの例です。
演算子
使用できる演算子、関数についてはドキュメントの「演算子」を参照してください。
計算・比較
Platioで使っている計算式はパソコンにある計算機と同じような仕組みです。
「+」は足す、「-」は引く、「*」は掛け算、「/」は割る、になります。
例:数値計算フィールド
数値フィールド同士の値を加算する
cabc1234 /* 数値1 */ + cxyz5678 /* 数値2 */
例:テキスト生成フィールド
文字列を"-"(ハイフン)で連結する
cabc1234 /* テキスト1 */ + "-" + cxyz5678 /* テキスト2 */
例:スイッチ計算フィールド
数値フィールドの値が100より大きいときにスイッチをオンにする
cabc1234 /* 数値 */ > 100
三項演算子
「条件」の後に疑問符?、続いて「条件が真の場合の値 : 条件が偽の場合の値」を記述します。条件の結果によって値を設定することができます。
例:テキスト生成フィールド
スイッチフィールドがオンのとき”出席”、オフのとき”欠席”を設定する
cabc1234 /* スイッチ */ ? “出席” : “欠席”
また、フィールドに値が設定されているかどうかにも判定できます。
cabc1234 /* テキスト */ ? “完了” : “未完了”
例:テキスト生成フィールド
偽の場合に、さらに条件を記述していくこともできます。
数値フィールドが10なら”棚A”、20なら”棚B“、それ以外は”棚C”を設定する
cabc1234 /* 数値 */ == 10 ? " 棚A" : cabc1234 /* 番号 */ == 20 ? "棚B" : “棚C”
複数条件(&&、||)
複数の条件を指定するときは&&、||演算子を使います。
例: 検知など
数値が50以上100以下ならば真(true)の条件式
cabc1234 /* 数値 */ >= 50 && cabc1234 /* 数値 */ <= 100
例:検知など
50以下または100以上ならば真(true)の条件式
cabc1234 /* 数値 */ <= 50 || cabc1234 /* 数値 */ >= 100
例:フィールドプロパティで色指定
フィールドの値が"A"でかつスイッチフィールドがオフの場合に赤にする式
cabc1234 /* テキスト */=="A" && !cabc1234 /* スイッチ */ ? "#FF0000" : ""
定義済み関数
定義済み関数の使用例についてはドキュメントの「定義済み関数」を参照してください。
ドキュメントにない応用例を紹介します。
数値
数値計算フィールドに、複数テキスト選択で選択された個数を設定
count( cabc1234 /* 複数テキスト選択 */ )
数値計算フィールドに、全角文字を長さ2、半角英数字を長さ1で数えた文字列の長さを設定
※元の文字列の長さ + 半角を取り除いた文字列の長さ として計算。式中の \w\d は a-zA-Z0-9 で、対象にしたい記号等はここに続けて記述します。
count( cabc1234 /* テキスト */ ) + count( replace( cabc1234 /* テキスト */, /[\w\d]/g, ""))
数値計算フィールドに、複数テキスト選択で選択された個数を設定
count( cabc1234 /* 複数テキスト選択 */ )
数値計算フィールドに、複数の数値フィールドから最大値を設定(例は3つのフィールド)
reduce( [cabc1234 /* 数値1 /, cxyz5678 / 数値2 /, cdef9999 / 数値3 */], (a, x) => a > x ? a : x, cabc1234 / 数値1 */ )
数値計算フィールドに、複数の数値フィールドから最小値を設定(例は3つのフィールド)
reduce( [cabc1234 /* 数値1 /, cxyz5678 / 数値2 /, cdef9999 / 数値3 */], (a, x) => a < x ? a : x, cabc1234 / 数値1 */ )
文字列
テキスト生成フィールドに、複数テキスト選択で選択された値を","カンマ区切りの文字列で設定
string( cabc1234 /* 複数テキスト選択 */ )
テキスト生成フィールドに、複数行テキストに入力された不要な改行や空白を消去して設定
replace(cabc1234 /* 複数行テキスト */,/\n|\r\n|\r|\s/g,"")
テキスト生成フィールドに、数値の値を0埋め(ゼロパディング)して桁数を調整して設定(例は3桁)
formatNumber(cabc1234 /* 数値 */, { minimumIntegerDigits: 3} )
テキスト生成フィールドに、数値の値の右から2桁目に「-」を挿入して設定
replace(string(cabc1234 /* 数値 */), /^(..)/, "$1-")