データを管理する際、作業対象のレコードグループを選択します。このレコードグループを4Dではカレントセレクションと呼びます。カレントセレクションにはレコードが全く含まれない、あるいは1件のレコード、複数のレコード、またはテーブルのレコード全部が含まれる場合があります。各テーブルには各プロセスごとにカレントセレクションがあります。
4Dにおいてカレントセレクションは重要なコンセプトです。通常データ管理処理はカレントセレクションのレコードに対して行われます。例えば:
- レコードの並び替え
- 個々のレコードの表示と更新
- レコードグループへの更新
- レポートの印刷
- ラベルの生成
- データのグラフ化
- レコードの書き出し
つまりカレントセレクションの作成は、あらゆるデータ管理処理の最初のステップです。
レコードのカレントセレクションはテーブルから抽出されたレコードのセットです。例えば"Company"データベースに従業員を管理するための"Employee"テーブルがあるとき、この会社のエンジニアを検索することができます。
検索を実行する前、そのプロセスの"Employees"テーブルのカレントセレクションは会社のすべての従業員 (営業、人事、エンジニア等) レコードを含んでいるかもしれません。検索が実行された後は、カレントセレクションにはエンジニアだけが含まれます。レコードリストを印刷すると、そのリストにはカレントセレクションのレコード (この場合エンジニア) だけが含まれます。従業員の給与をグラフ化すると、すべてのエンジニアの給与がグラフ化されます。
カレントセレクションは、それを変更する処理を行うまでは変更されません。カレントセレクションは以下のような場合に変更されます:
- すべてのレコードをカレントセレクションにした
- ハイライトしたレコードをカレントセレクションにした
- レコードを検索した
出力フォームのウィンドウのタイトルバーにはテーブルの総レコード数とカレントセレクションのレコード数が表示されます。
4D Server: 4Dクライアントの場合、カレントセレクションのレコード数だけが表示されます。
入力フォームにはカレントセレクションのレコード総数と、表示中のレコードがカレントセレクション中何番目のレコードかが、ナビゲーションボタンの下に表示されます (表示のための変数が配置されていれば)。
データベース中のすべてのテーブルが固有のカレントセレクションを持ちます。リレーショナルデータベースでは、1テーブルのカレントセレクションを変更すると、そのテーブルにリレートする他のテーブルのカレントセレクションも変更されることがあります。例えば[Employees]と[Departments]テーブルがリレートされているとき、[Departments]テーブルのレコードを詳細フォームで開くと、[Employees]テーブルのカレントセレクションが変更されます。つまりその部署に属する従業員が[Employees]テーブルのカレントセレクションになります。リレーションに関する詳細はリレーションのタイプを参照してください。
データベースタスクを実行するためにプロセスを使用している場合、あるテーブルに対して同時に複数のカレントセレクションが存在できます。各プロセスは個々の4D環境のように振る舞い、それぞれ個別のタスクを実行できます。異なる複数の営業地域間で月間売り上げの比較を行うなど、同じデータの異なるカレントセレクションを同時に扱う必要がある場合に複数のプロセスを使用できます。プロセスに関する詳細は4Dランゲージリファレンスマニュアルのプロセスを参照してください。
レコードを表示する際に出力フォームを使用している場合、カレントセレクションをリセットしてすべてのレコードを表示することができます。
アプリケーションモードでは"すべてを表示"標準アクション、またはALL RECORDSコマンドを使用します。
デザインモードではレコードメニューのすべてを表示コマンドを使用できます。これを選択すると、カレントテーブルのすべてのレコードがカレントセレクションに含まれます。
注: 入力フォーム使用時にはすべてを表示コマンドを選択できません。
出力フォームに表示されているレコードをクリックして選択し、それらを新しいカレントセレクションにすることができます。この動作はサブセットを作成すると呼ばれることがあります。
アプリケーションモードではユーザーがハイライトしたレコードをセットとセレクションテーマのコマンドで処理します。
デザイン環境ではレコードメニューのサブセット表示コマンドを選択します。このコマンドを選択すると、4Dはウィンドウ中で選択 (ハイライト) されたレコードを新しいカレントセレクションとします。
レコードをハイライトする様々な方法については一覧フォームの"ハイライト"で説明しています。