計算式かつ編集可能な項目を用意する

最終更新日: 2022年2月24日
R8 | R9

「見積書」モデルの「請求金額」は計算式で求められますが、かつ、入力用の編集項目も用意しています。

請求金額項目を自動計算かつ入力可能とする

入力欄に値が入っていた(手動入力された)場合はその値を優先します。入力欄が空の場合は、計算値をそのまま使います。

表示時は一つのみとなる

定義方法

「請求金額」の項目を3つ用意します。それぞれ次の特徴があります。

項目ID用途計算式DB保存表示時に隠す
total_calc 登録更新画面で自動計算値を保持する SUM(${precord/p_syoukei}) しない
total_input 登録更新画面で入力値を保持する なし しない
total 詳細画面用 IF(${total_input}>0,${total_input},${total_calc}) する -
請求金額項目の定義

total_calc項目

  1. 「詳細」を開きます。
    登録更新画面で自動計算値を保持する目的で用意するため、「値をデータベースに保存する」を無効にします。
    total_calc項目の定義(1)
  2. 「出力制御 > 詳細画面」を開きます。
    表示時は隠し項目とします。金額項目なので、フォーマットを3桁区切りとします。
    total_calc項目の定義(2)

total_input項目

  1. 登録更新画面で入力用項目を用意します。total_calcと同様、値はデータベースに保存しません。
    total_input項目の定義(1)
  2. また、詳細画面では隠し項目とします。金額項目なので、フォーマットを3桁区切りとします。
    total_input項目の定義(2)

total項目

  1. total_input項目に入力があれば、こちらを正とします。そうでなければ自動計算値(total_calc項目)の値をデータベースに保持します。
    検索時はこの項目を使います。
    total項目(1)
  2. 金額項目なので、フォーマットを3桁区切りとします。
    total項目(2)
  3. 「入力制御 > 隠し項目」で、「全画面」にチェックを入れます。
    total項目(3)

JavaScriptを利用する

「追加ボタン」を用意し、この押下によって計算を行い、値を上書きする方法もあります。この場合は入力可能項目に対して直接、値を書き換えます。

詳細は "項目ボタン押下時にJavascriptを実行する" をお読みください。WDN