NEWS
お知らせ
【新機能紹介】マスタ/詳細レイアウトについて
この機能により、現在の対象レコードを表示するポータルを作成することができます。バージョン16 で同じような動作を再現するためには、現在の TO (テーブルオカレンス) とは別に、リレーションで繋がれた別の TO が必要でしたが、本機能は、レイアウトに割り当てられた TO のみで使用できます。
※ 現在の対象レコードを表示するポータルを「マスタ領域」、現在のレコードのデータを表示する部分を「詳細領域」と呼びます。
マスタ領域の設置方法
レイアウト上にポータルを設置し、[レコードを表示:] オプションで「 現在のテーブル(「現在のテーブル名」) 」を選択するだけで OK です。
その他のオプションについて
・ポータルレコードのソート
このオプションは設定できません。ポータルレコードのソート順は、現在の対象レコードのソート順と連動します。
・ポータルレコードのフィルタ
このオプションは設定できません。表示されるポータルレコードは、現在の対象レコードと連動しており、それのみでしかポータルレコードをフィルタすることはできません。
・ポータルレコードの削除を許可する
このオプションは常にオンです。
・垂直スクロールを許可
このオプションは常にオンです。さらに、[スクロールバーを表示:] オプションは選択できますが、[レコード終了時にスクロールバーをリセット] オプションは常にオフです。
・最初の行
このオプションは常に 1 です。つまり、対象レコードの途中からポータルレコードを表示する設定はできません。
・行数
このオプションは通常のポータルと同じように設定でき、動作します。
・代替の行状態を使用
このオプションは通常のポータルと同じように設定でき、動作します。
・アクティブな行状態を使用
このオプションは通常のポータルと同じように設定でき、動作します。
動作について
以下、特に言及しない限りは、「ポータル」とは「マスタ領域」を指すものとします。
ポータルレコードを選択する
ポータルレコードを選択すると、現在のレコードも切り替わります。逆に、現在のレコードを切り替えると、ポータルレコードも切り替わります。
検索モードで新規検索条件を追加する
新規検索条件を作成すると、ポータル上にもそれに連動して検索条件レコードが作成されます。イメージとしては、リスト表示のレイアウトで検索モードを操作した時の動作に近いです。
対象レコードを絞り込む
対象レコードを絞り込むと、ポータル上のレコードもそれに連動してフィルタされます。
対象レコードをソートする
対象レコードをソートすると、ポータル上のレコードもそれに連動してソートされます。
レコードを削除する
レコードを削除すると、ポータル上のレコードもそれに連動して表示されなくなります。
注意点
ポータルレコードの削除を許可する について
現在のレコードを、ツールバーやメニューバー、ショートカットから削除する機能を簡単に抑制する場合、カスタムメニューから、レコード削除の項目を削除するかと思います。この操作だけでは、Delete キーや Backspace キー によるポータルレコードの削除は抑制できません。そのため、[ポータルレコードの削除を許可する] オプションをオフにすることで、キー入力によるポータルレコードの削除を抑制するのですが、前述の通り、[現在のテーブル] ポータルにおいては、[ポータルレコードの削除を許可する] をオフにすることができません。つまり、単純な設定ではポータルレコードの削除を抑制できないのです。
対応策としては、以下のふたつが考えられます。
- カスタムアクセス権でレコードを削除できないようにする
アクセス権セットの編集 → データアクセスとデザイン → レコード: → カスタムアクセス権… から、削除の権限を制限します。アクセス権は、データベースの様々な場所、様々な場面で重要な役割を果たしますので、データベース全体のことを考えた上で設定することが重要です。
- スクリプトトリガでキー入力をキャンセルする
1 よりも簡単な方法で、そこまで厳密なアクセス権セットの設定をしないデータベースにおいて有効です。ユーザのキー入力およびフィールドがアクティブかどうかをスクリプトトリガで検知し、場合に応じて「現在のスクリプト終了 [ テキスト結果: 0 ]」で、イベントをキャンセルします。基本的にレコードの削除はさせるが、マスタ領域ポータルからの削除はさせたくない、という場合にも有効です。