フィールドのアクション->数式フィールド
解説
ユーザによって入力されるフィールドではなく、計算に利用されるフィールドを作成することができます。これらのフィールドは、数式フィールドと呼ばれます。
数式フィールドを作成するには、このフィールドへの値として、計算されるべき数式を入力しなければなりません。
加算、減算、乗算、除算等が可能です。
数式の出力によっては、数式フィールドの値は、数値やテキスト値、日付や期間などになります。
数式の計算は、式の計算です。詳細は、式 をご参照ください。
下記のサンプルでは、TotalMarks(合計点)フィールドが、数式型フィールドです。
TotalMarks ( type = formula value = English + Arts )
|
English と Arts は フィールドですが、Deluge スクリプトによって変数として生成されています。
数式フィールドは、別の数式フィールド内で使用することはできません。
たとえば、以下のコードは無効です。
TotalMarks ( type = formula value = English + Arts ) AverageMarks ( type = formula value = TotalMarks / 2 )
|
|
注意: 数式フィールドは計算に利用されるので、フォーム上には表示されません。 ユーザは、これらのフィールドをビューで表示するかどうかを選択できます。
|
=>正しいコード
TotalMarks ( type = formula value = English + Arts ) AverageMarks ( type = formula value = (English + Arts) / 2 )
|
使用例(完全なサンプル) …ご自身のアカウントに、新規アプリケーションとしてコピーして利用できます。
application "Student marks database" { page "Enter marks" { form Students_Mark_Sheet { displayname = "Students Mark Sheet" Student_Name ( displayname = "Student Name" type = text ) English ( type = number decimalplace = 2 ) Arts ( type = number decimalplace = 2 ) TotalMarks ( type = formula value = English + Arts ) AverageMarks ( type = formula value = (English + Arts) / 2 ) } list "View student marks" { Students_Mark_Sheet } } }
|
|
注意:
- 複数選択フィールド以外のすべての型のフィールドを、数式フィールドで利用できます。
- 数式で使用できる 演算子/関数 は、右記のページで確認できます。式>演算子 と 式>組み込み関数
- 数式は、下記の時点で計算されます。
- 数式が修正された時
- 数式に関与するフィールド値が修正された時(レコードが更新された時)
|
FAQ - 数式 フィールド
1. 数式フィールドを含むフォームとビューを作成して、データも登録しました。その後、数式フィールドを修正したら、しばらくの間、DBテーブルを表示できなくなりました。これはなぜですか?
数式フィールドを修正すると、かならず、全レコードの数式フィールドの値が再計算されます。この再計算が完了するまで、ビューを表示することはできません。
2. 同一フォーム内で、数式フィールドを、別の数式フィールド内で使用することはできますか?
いいえ、できません。数式フィールドを、別の数式フィールド内で使用し設定する機能は、現在サポートしていません。
3. 受注のデータベースを作成しています。各受注レコードに、送信時間を記録(タイムスタンプ)したいのですが、どのように設定すればよいですか?
数式(formula)フィールドを利用して、値として、zoho.currentime を設定すれば、受注レコードの登録時間を記録(タイムスタンプ)することができます。
この設定により、自動的に、各レコードがデータベースに保存された正確な時間をフィールドに投入します。
サンプルコードは、次のとおりです。
Time_Stamp ( type = formula value = zoho.currenttime )
|
※GUI モードでは、数式(formula)フィールドを作成して、そのフィールド値として、zoho.currenttime と入力するだけで、タイムスタンプが可能になります。