カレントセレクション
概要
データを管理する際には、作業対象としたいレコードのグループを選択します。このレコードのグループを カレントセレクション と呼びます。カレントセレクションには、テーブル内のレコードが 0 件、1 件、複数件、あるいはすべて含まれることがあります。すべてのテーブルおよびすべてのプロセスは、それぞれ独自のカレントセレクションを持ちます。
カレントセレクション は 4D における重要な概念です。レコード に対する最も一般的なデータ管理操作は、カレントセレクションに対しておこなわれます。これらの操作には次のものが含まれます:
- レコードのソート
- 個々のレコードの表示および変更
- レコードグループの更新
- レポートの印刷
- ラベルの生成
- データのグラフ化
- レコードのエクスポート
言い換えれば、テーブルにカレントセレクションを作成することは、他の数多くのデータ管理操作への第一歩です。
レコードのカレントセレクションは、常に直近に選択されたレコードの集合です。たとえば、従業員レコードを管理するために従業員テーブルを使用する会社のデータベースがあるとします。会社のすべてのエンジニアのレコードを検索することにしたとしましょう。 この検索が始まる時点では、カレントセレクションには会社のすべての従業員のレコード — 営業担当者、製造担当者、エンジニアなど — が含まれている場合があります。検索が完了すると、カレントセレクションにはエンジニアのレコードのみが含まれます。レコードのリストを印刷すると、そのリストにはカレントセレクション内のレコードのみ — この場合は会社のすべてのエンジニアのレコード — が含まれます。従業員の給与をグラフ化すると、そのグラフには会社のすべてのエンジニアの給与が表示されます。
カレントセレクションは、それを変更する操作を実行するまで同じ状態が維持されます。次の方法でカレントセレクションを変更できます:
- すべてのレコードを選択する
- レコードのサブセットを手動で選択する
- レコードを検索する
出力フォームのタイトルバーには、カレントテーブルに何件のレコードがあり、そのテーブルのうち何件のレコードがカレントセレクションに含まれているかが表示されます。リモート 4D では、カレントセレクション内のレコード数のみが表示されます。
データベース内のすべてのテーブルは、それぞれ独自のカレントセレクションを持ちます。リレーショナルデータベースでは、あるテーブルのカレントセレクションを変更すると、関連するテーブルのカレントセレクションが変更されることがあります。たとえば、関連する [従業員] テーブルと [部署] テーブルで構成されるデータベースにおいて、[部署] テーブルで入力フォームを開くと、[従業員] テーブルのカレントセレクションが変更されます。つまり、その部署に属する従業員が [従業員] テーブルの新しいカレントセレクションになります。
データベースでタスクを実行するために プロセス を使用する場合、テーブルごとに複数のカレントセレクションが同時に存在することがあります。各プロセスは個別の 4D 環境のように動作し、別々のタスクを実行できます。特に、複数の異なる販売地域の月次請求など、2 種類以上のデータを比較する場合には、複数のカレントセレクションを持つことが役立ちます。
すべてのレコードを表示する
出力フォームを使用してレコードを表示する際、カレントセレクションをリセットして、カレントテーブルのすべてのレコードを含めることができます。この操作は、Select All 標準アクション または ALL RECORDS コマンドを介して実行できます。
デザイン環境では、レコード メニューの すべてを表示 コマンドを使用できます。これにより、カレントテーブルのすべてのレコードがカレントセレクションに含まれます。すべてを表示 コマンドは、入力フォームを使用しているときには無効になります。
レコードのサブセットを作成する
出力フォームで特定のレコードを手動で「マーク」し、それらを新しいカレントセレクションとして定義することで、新しいカレントセレクションを指定できます。これはサブセットの作成と呼ばれます。デザイン環境では、レコード メニューに専用の サブセットを表示 コマンドがあります。
開発においては、セット を使用して、ユーザーがマークしたレコードを管理できます。
カレントセレクションの参照や操作は、Selection テーマのコマンドを介しておこないます。