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