本文へ移動
Wagby11
マニュアルのグループを選ぶ

WAGBY11 MANUAL / 10

表示時に計算する

計算結果を保存せず、一覧や詳細の出力時に求める方法を説明します。

最終更新日:

計算・導出項目の小目次へ

1. このページで伝える機能

表示用の税込額や、閲覧中の利用者名などを、その都度求めて表示できます。計算結果をデータベースへ保存する必要がない項目に使います。

使える関数の一覧、演算子、未設定値や丸めの規則、用途ごとの制約は関数と式の仕様を参照してください。

2. Wagby11で実現できること

表示用税込額は、保存済みの適用金額3,240円へ10%の税を加え、円単位に四捨五入した3,564円です。保存している金額とは別の参考表示として用意しています。

保存した金額から、表示用の税込額を求めた詳細画面。
保存した金額から、表示用の税込額を求めた詳細画面。

検索結果の一覧にも表示用税込額を出せます。値は取得・出力時にサーバーで求めます。

表示時の計算結果を含む検索結果一覧。
表示時の計算結果を含む検索結果一覧。

日付を使う年齢などにも応用できます。計算結果は保存せず、表示時に求めるため、計算元や基準日が変われば次に取得した結果へ反映できます。表示用calc項目を検索条件やソート項目にはできません。

親子フォームの入力中に明細金額と合計を再計算する動作や、非保存の子計算項目を集計する規則は、入力中に明細と合計を再計算するを参照してください。

3. AIへの指示例

最小限の指示例

税込額は保存せず、画面に表示するときに求めてください。

AIは税率、丸め方、どの画面へ表示するかを類推して補います。帳票や取引の確定値として保存する金額なのか、表示時の参考値なのかも明確に伝えます。

より詳細な指示例

CalcQuote.displayTaxAmountはdecimal、precision14・scale2、transient:true、calc.on:[display]にしてください。payableAmountがnullならnull、それ以外は1.1を掛けて小数0桁へ四捨五入します。詳細と検索一覧へ表示し、適用金額3240から3564になることを確認してください。検索条件とソートには使いません。
既存のモデル・主キー・項目・データ・権限を保持し、Wagby11のguide・referenceを確認してください。新規モデルには自動採番の主キーと予約属性version、必要なG_ADMINのCRUD権限を用意します。メニューと一般利用者向け操作マニュアルを更新し、設計情報の検証・コード生成・ビルドを完了してから起動し、画面と保存結果を確認してください。

4. 編集されるAppSchemaの例

以下は関連する定義の抜粋です。構文を覚えなくても、何から・いつ値を求め、保存するかをAIへ伝えられます。

entity:
  attributes:
    - name: 表示用税込額
      name_en: displayTaxAmount
      type: decimal
      precision: 14
      scale: 2
      transient: true
      calc:
        on: [display]
        expression: 'payableAmount == null ? null : #round(payableAmount * #decimal("1.1"), 0)'

transient: trueでDB保存項目にせず、on: [display]で出力時に計算します。一覧・詳細・フォーム・保存結果・ダウンロードへ出力できます。表示用calcを保存用calcから参照することはできません。

5. 参考資料

reference:式言語(属性の計算)
designer/docs/appschema/html/reference/16-expression-language.html
reference:利用できる関数
designer/docs/appschema/html/reference/17-expression-functions.html
guide:非永続項目
designer/docs/appschema/html/guide/08-rules/07-transient-fields.html