例を見てみましょう。ある合計金額フィールドは、注文フォーム内で、注文された商品の単価と数量に基づいて計算されます。この処理を実現するためにワークフローを作成する代わりに、数式フィールドを使用することで、多くの時間と手間を節約できます。このような数値演算に加えて、2つのフィールドのデータを連結するなどのテキストベースの処理や、2つの日付の間の日数を求めるなどの日付ベースの処理が必要になる場合もあります。このような(およびその他の)要件に対応するために、Zoho Creator には数式フィールドが用意されています。
数式フィールドの値は計算によって求められるため、デフォルトではフォームに表示されません。必要に応じて表示させることができます。 詳細はこちら
機能
フォームで数式フィールドを表示する
数式フィールドの値はユーザーが入力するのではなく計算によって求められるため、デフォルトではユーザーがフォームにアクセスしても表示されません。必要に応じて表示させることができます。方法を見る
注意事項:
-
数式フィールドをフォームに表示すると、そのフィールドは無効状態で表示され、ユーザーが値を入力できないことを示します。
-
数式フィールドがフォーム内の他のフィールドを参照している場合、ユーザーがフォームを送信する前に、計算された値を表示できるようにしておくとよいでしょう。
ヒント: 数式フィールドは、参照しているフィールドの近くに配置するようにしてください。これにより、ユーザーは自分が入力した値に基づいて計算が行われていることを理解しやすくなり、ユーザーエクスペリエンスが向上します。
-
複数行テキスト項目タイプから単一行テキスト項目タイプに切り替えると、複数行テキストの数式項目の値は、最大255文字の制限に合わせて切り詰められます。
-
既存の数式項目は、項目タイプを変更しない限り、制限のない単一行テキスト項目のままです。新しく追加される数式項目はすべて、デフォルトで単一行テキストとして作成され、必要に応じて項目タイプを変更できます。
- 数式フィールドの式に他のフィールドが含まれていない場合、ユーザーがそのフォーム内のいずれかのフィールドに入力(新規登録時)またはデータを変更(編集時)したタイミングで、計算結果が表示されます。ユーザーが何も入力・変更しなかった場合でも、フォーム送信時に数式フィールドの値は計算されます。
- 数式フィールドの式に他のフィールドが含まれている場合、そのいずれのフィールドも null を保持していないときにのみ、値が計算されます。
- フィールドの式を変更した場合
- フィールドタイプを 1 行テキストから複数行テキスト、またはその逆に切り替えた場合
- ユーザーがレコードを一括編集し、その編集対象フィールドの 1 つが数式フィールドの式に含まれている場合
フィールドタイプを設定する
以下は、1行テキストの数式フィールドタイプと複数行テキストの数式フィールドタイプでの動作の違いです。
|
タブ |
プロパティ |
新規1行テキスト数式をサポート |
新規複数行テキスト数式をサポート |
|
フォーム |
はい |
いいえ |
|
|
はい |
いいえ |
||
|
はい |
いいえ |
||
|
レポート |
タブ間での条件ビルダー(条件の設定) |
はい |
いいえ |
|
はい |
いいえ |
||
|
はい |
いいえ |
||
|
検索 |
はい |
いいえ |
|
|
Deluge |
条件フィルター |
はい |
いいえ |
|
集計データ(件数、合計、重複なし件数、最大、最小) |
はい |
いいえ |
|
|
ページ |
パネル / ゲージ - 重複なし件数 |
はい |
いいえ |
|
チャート - X、Y 軸 |
はい |
いいえ |
|
|
API |
条件の利用箇所 |
はい |
いいえ |
|
モバイル
|
レポートでの検索 |
はい |
いいえ |
|
レポートでのグループ化 |
はい |
いいえ |
|
|
レポートでの並べ替え |
はい |
いいえ |
|
|
検索 |
はい |
いいえ |
数式項目の式を定義する
数式項目の式を定義する際は、まずその項目にどの値を表示させるかを決めます。数式項目の式の定義については、このページを参照してください。
数式項目は、abcdのような文字列定数や、123のような数値定数を表示するだけの用途にも使用できますが、多くの場合は項目の値に基づいて計算を行うために使用します。以下の例を参照してください。
| 要件 | 式 | 説明 |
| 金額を、商品の単価と数量に基づいて計算する | 算術演算子 (*) は、2つの項目に保存されている値を乗算します。 | |
| 姓と従業員のメールアドレスを連結する | 「名前」は複合項目です。last_nameは、姓項目のリンク名です。算術演算子 (+) は、2つの項目に保存されている文字列値を連結します。 | |
| 学生が数学、国語、理科で取得した点数に基づいて、平均点を計算する | Math、Japanese、Science は項目のリンク名です。算術演算子+(加算)と/(除算)が使用されています。かっこ()は、2つの演算の実行順序を定義するために使用されます。 |
数式項目のデータ型
Zoho Creator の各項目には、データ型が関連付けられています。数式項目はこの点で特別であり、そのデータ型は式を評価した結果によって決まります。例えば:
| 式 | データ型 | 説明 |
| Bigint | 算術演算子(+) を数値に対して使用すると、加算が行われます。結果(5)は数値です。 | |
| String | 二重引用符で囲まれた文字は、文字列として扱われます。算術演算子(+) を文字列に対して使用すると、文字列が連結されます。結果(23)は文字列です。 | |
| Bigint | 二重引用符で囲まれた文字は、文字列として扱われます。length() は、文字列内に含まれる文字数を返す組み込み関数です。結果(4)は数値です。 | |
| Timestamp | Zoho。currentdate は、現在の日付を返すDeluge のシステム変数です。結果は日付型の値です。 | |
| Boolean | 関係演算子(>) を 2 と 3 に対して使用すると、それらの大小関係が真かどうかを判定します。2 は 3 より大きくないため、結果は false(ブール値)になります。 |
数式フィールド値の計算
数式フィールドに表示される値は、その式を評価した結果です。この値は、ユーザーがフォームを送信したときに計算されます。
数式フィールドをフォーム上に表示するように設定すると、式にフィールドが含まれているかどうかに応じて、ユーザーはフォームを送信する前に計算結果を確認できます。
フィールド値が null の場合
フォーム上でフィールドを必須に設定していない場合、多くのレコードでそのフィールドは空(データなし)のままにすることができます。Zoho Creator では、そのような空のフィールドには null という値が割り当てられます。レコード内のフィールドが null を保持している場合、Zoho Creator はそのフィールド(そのレコード)には値が存在しないと解釈します。数式フィールドの式に null になり得るフィールドが含まれている場合、前述のとおり、その式は評価されないことがあります。
次の種類のフィールドは null を保持することがあります:数値、小数、通貨、パーセント、日付、日付-時間。1 行テキスト、氏名、メール、住所 などのテキストベースのフィールドは、null を保持することはありません。これらが空(データなし)の場合は、文字数 0 の文字列として扱われます。数式フィールドに常に値を持たせるには、条件式を定義する必要があります。
数式フィールド値の再計算
数式フィールドの値は、次の場合に再計算されます:
メモ:数式フィールドの式を変更すると、そのフォームに含まれるすべてのレコードで再計算が行われます。レコード数が多い場合、この再計算には時間がかかることがあります。