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

WAGBY11 MANUAL / 07

条件に応じて入力可否を変える

スイッチなど別項目の値に応じて、必要な項目だけ入力できるようにする方法を説明します。

最終更新日:

入力制御の小目次へ

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

値引きを行うときだけ値引率を入力するなど、制御元の値によって入力可能・入力不可を切り替えられます。入力の必要がない項目を操作しにくくし、入力の流れを分かりやすくできます。

2. Wagby11で実現できること

「値引きを入力する」がオフのときは値引率を、「配送が必要」がオフのときは配送先を入力不可にしています。

スイッチがオフの項目は入力不可になります。
スイッチがオフの項目は入力不可になります。

それぞれをオンにすると対象項目へ入力できます。

スイッチをオンにして値引率と配送先を入力する例。
スイッチをオンにして値引率と配送先を入力する例。

入力不可へ切り替えても、画面に入力した値はすぐには消えません。再度オンにすれば入力途中の値を使えます。保存時の扱いは次のページで説明します。

3. AIへの指示例

最小限の指示例

値引きが必要なときだけ値引率を、配送が必要なときだけ配送先を入力できるようにしてください。

制御元の型、オン・オフの条件、対象項目をAIが類推して補います。条件が成立しない場合にどうするかも伝えると、制御が明確になります。

より詳細な指示例

InputControlのboolean項目discountAllowedがtrueのときだけdiscountRateを、shippingRequiredがtrueのときだけshippingAddressを入力可能にしてください。初期状態は両方falseです。ui.editability_controlsでそれぞれ独立したルールにし、同じ対象を複数ルールから操作しません。初期表示とスイッチ変更時の入力可否、オフからオンへ戻したときに画面の値が残ることを確認してください。
既存のモデル・主キー・項目・データ・権限を保持し、必要なguide・referenceを確認してください。新規モデルには自動採番の主キーと予約属性version、必要なG_ADMINのCRUD権限を用意します。メニューと一般利用者向け操作マニュアルを更新し、設計情報の検証・コード生成・起動後に動作と保存結果を確認してください。

4. 編集されるAppSchemaの例

以下は関連する定義の抜粋です。構文を覚えなくても、入力・表示・保存でどう動いてほしいかをAIへ伝えられます。

ui:
  editability_controls:
    - id: ENABLE_DISCOUNT
      source: discountAllowed
      effect: enable
      when: { operator: eq, value: true }
      targets: [discountRate]
    - id: ENABLE_SHIPPING
      source: shippingRequired
      effect: enable
      when: { operator: eq, value: true }
      targets: [shippingAddress]

effect: enableは条件成立時だけ入力可能にします。effect: disableは逆の指定です。一つの制御元から複数の項目を操作できますが、同じ対象項目を複数ルールの制御先にはできません。画面の入力制御はサーバー側の業務検証や認可とは別です。

5. 参考資料

guide:入力可不可制御
designer/docs/appschema/html/guide/05-input-control/07-enable-disable-control.html
reference:ui
designer/docs/appschema/html/reference/10-ui.html