リストの用途のひとつは、データ入力時に値を選択するために値一覧をユーザーに提供することです。この目的をはじめとして、リストを使用する理由をいくつか次に示します:
- あらゆるフォーム、または選択したフォームでリストを共有できます。
- 長いリストは複数の小さなリストに分割できます。
- 入力できる値をリストの項目に制限したり、またはユーザーに別の値の入力を許可することができます。
- ユーザーにリストの変更を許可したり、またはリストの変更を禁止することができます。
- ポップアップメニュー/ドロップダウンリストまたはコンボボックスを使用することによって、フィールドや変数を直接フォームに表示させることができます。
Tip: リストに含まれる項目の数が限定されている場合、リストは必要ないかもしれません。例えば、二つしか値のないリスト(男性/女性)の場合、ラジオボタンまたはピクチャーラジオボタンをチェックすることによってデータを入力可能なブール型のフィールドを使用した方が適しているかもしれません。異なる値が3つや4つだったとしても、チェックボックスを使った方が適切な場合もあります。
フィー ルドプロパティあるいはデータベースストラクチャーレベルでリストをフィールドに割り当てることができます。フィールドにリストを割り当てると、リスト フォームか詳細フォームかに関わらず、そのフィールドをデータ入力のために選択すると、常にウィンドウ内にリストが表示されます。ユーザーはこのリストから値を選択す ることができます。リストが並べ替えられている場合は、ユーザーがキーボードで文字を入力すると、リストが自動的にスクロールされます。例えば、“N”と 入力すると、リストは“N”で始まる最初の項目までスクロールされます。ユーザーは目的の項目が現れた時点で入力を中止し、その項目をリストから選択する ことができます。
次の図は、選択リストが表示されている様子を示しています。
![](../../picture/455777/pict455777.en.png)
ストラクチャエディターのインスペクタを使用してフィールドにリストを割り当てた場合は、クエリエディターでそのフィールドが選択された際にもリストが表示されます。詳細は フィールドプロパティ の「項目選択を使用する」を参照してください。
ま た、フォームのデータ入力制御としてリストをフィールドに割り当てることもできます。この場合、リストはその入力フォームでフィールドが選択された場合にのみ表示されます。
この場合、 ポップアップメニュー、ドロップダウンリスト (変更不可能な選択項目)または コンボボックス (変更可能な選択項目)を使用することによって、選択リストダイアログボックスを使用することなくフィールド内の入力と表示を管理することができます。これのためには、オブジェクトをリストに割り当て、プロパティリストの「変数名」にフィールドまたは変数名を入力するだけです。詳細な情報についてはポップアップメニュー、ドロップダウンリストを参照して下さい。
![](../../picture/1349575/pict1349575.en.png)
4Dでは階層リストを作成できます。親リストを選択するとサブリストが表示されます。
階層リストの利用方法には標準といえるものがなく、その使用目的により変わります。例えば、都市リストには項目が数多くあるため、選択に時間がかかります。このような問題のために階層リストを使用したい場合は、いくつかの対処法があります。
入力のためにリストを使用する以外にも、階層リストを使用して次のオブジェクトに値を代入することができます:
注: 階層リストは、ポップアップメニュー/ドロップダウンリストまたはコンボボックスに関連付けることが可能です。ただしこの場合、階層リストの一番上の階層のみが表示されます。
値 のリストを2種類の値に分けることがよくあります。前述の例では、最も頻繁に選ばれた都道府県を割り出してみます。選択された値のうち80%が一部の都道 府県であれば、これらの都道府県をリストに入れ、残りの都道府県を次の図のようなサブリストに格納することができます。
![](../../picture/455798/pict455798.en.png)
これにより、全体の80%の項目を直接選択できるようになり、多くの場合で入力処理が速くなります。
こ れとは別に、地域別に都道府県をまとめる方法もあります。最初に表示されるリストから地域を選択して、サブリストにより都道府県を選択することができま す。この場合、地域を選択してから都道府県を選択する必要がありますが、47都道府県のリストの中から1つを選択するよりは速いでしょう。
データ入力作業のなかには、さほど重要ではないものもあります。リストに存在しない値を入力しても、まったく問題がないような場合です。しかし、リスト内に存在する値を入力しなければならないアプリケーションもあるかもしれません。別の値を入力してしまうと、請求書の支払遅延などの深刻な結果をもたらす場合もあるでしょう。
4D では、フォームのデータ入力制御の一部として指定値リストを設定することができます。このタイプのデータ入力制御を使用すると、ユーザはリスト上にある値以外の値を入力できなくなります。例えば、人事データベースにおいて、会社で許可される役職名が特定のものに限定されている場合です。
もう一つのデータ入力制御では、リスト内の値を除外することができます。この場合ユーザーはフィールドに格納すべきではない値を入力できません。例えば、会社では特定の国々で商売を行なわないかもしれません。これらの国々を除外リストに入れると、その値が入力できなくなります。
数値や日付、時間の各フィールドに設定する最大値と最小値は、最も効果的なデータ入力制御の1 つです。最大値と最小値を設定すると、ユーザはこの範囲外の値を入力できなくなります。
フィールドに3 種類の範囲を受け入れる場合について考えてみましょう。リストを使用して、このような不連続な範囲を設定することができます。このリストをフィールドの指定リストに設定し、この3 つの範囲以外の値を受け入れないようにすることができます:
![](../../picture/455822/pict455822.en.png)
これとは逆に、有効ではない範囲を指定するリストを作成することもできます。フィールドの除外値リストとして、このようなリストを作成すると、その範囲内の入力値は受け入れられなくなります。