項目設定で明細項目に対して「入力を必須にする」と設定しても、それは「明細行を追加・編集する際」にのみ機能するチェックとなります。
そのため、明細行を1行も追加せずにレコード全体の「確定」ボタンを押した場合には、必須チェックがかからず、明細が空のまま登録できてしまいます。
この挙動を回避し、必ず1行以上の明細入力を必須にするには、ヘッダ項目を用いて明細の行数をチェックし、計算結果が一定の基準を満たさない場合にエラーを出す仕組みを構築する必要があります。
すべてのレコードにおいて、明細が1行も無い状態での登録を禁止する手順です。
【設定箇所】 左パネル > 対象のデータベース > 設定(スパナアイコン) > 基本設定 > 項目設定
1. 明細行数をカウントする項目を作成する
「項目設定」画面にて、以下の内容で項目を追加します。
・項目名:明細行数チェック(任意の名称)
・タイプ:数値計算
・明細項目にする:チェックを入れない(※必ずヘッダ項目として作成してください)
2. 計算式と制限値を設定する
作成した項目の「設定」ボタンをクリックし、詳細設定画面にて以下の通り設定します。
・計算方法:「(明細の)レコード数」を選択
・計算する項目:「明細」を選択
・最小値:「1」を入力
・必須:「入力を必須にする」にチェックを入れる
この設定により、明細が0行の状態で保存しようとすると「'明細行数チェック'の計算結果が'1'以上の数字になるように入力してください」というエラーが表示され、登録をブロックできます。
※運用途中でこの設定を追加した場合は、既存レコードに対しても「一括再計算」を実行して、現在の行数をシステムに認識させる必要があります。
詳細な仕様の違いや作成手順については、下記記事をご確認ください。
数値計算タイプで利用可能な計算ロジックや、エラーメッセージが表示される条件について解説しています。
項目設定:項目タイプ「数値計算」
ヘッダ項目で行数をカウントし、上限や下限を設ける際の考え方が記載されています。
1レコードに入力できる明細行の数を任意の行数に制限することは可能か?
(記事ID:2823)