メインコンテンツまでスキップ
バージョン: 20 R7 BETA

OBJECT SET LIST BY NAME

OBJECT SET LIST BY NAME ( {* ;} object {; listType}; list )

引数説明
*演算子指定時, Objectはオブジェクト名 (文字列) 省略時, Objectはフィールドまたは変数
objectanyオブジェクト名 (* 指定時), または フィールドまたは変数 (* 省略時)
listTypeIntegerリストの種類: 選択リスト、必須リスト、除外リスト
listText選択リストとして使用するリストの名前 (デザインモードで定義)

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

OBJECT SET LIST BY NAMEコマンドは、object引数で指定されたオブジェクトあるいはオブジェクトグループの選択リストを、listに渡したリスト (デザインモードのリストエディタで定義) に設定あるいは置き換えます。 list 引数に名前を渡すリストは、リストエディターまたはデザインモードを使用して予め作成されている必要があります。

このコマンドは入力フォーム、ダイアログフォームにおいて、テキストが入力可能な変数またはフィールドに適用することが出来ます。

オプションの * 引数を指定した場合、objectはオブジェクト名です (文字列) 。オプションの * 引数を省略すると、objectはフィールドまたは変数です。この場合、文字列ではなくフィールドまたは変数参照 (フィールドまたは変数のみ) を指定します。

注: このコマンドはサブフォームリストフォームのフィールドには使用できません。

OBJECT SET LIST BY NAME コマンドは、object 引数と * によって指定されたオブジェクトに関連付けられた全ての型のリスト(選択リスト、指定リスト、除外リスト)を設定または置き換えることが出来るようになりました。そのためには、listType 引数に、 "Form Objects (Properties)" テーマ内の以下の定数のいづれか一つを渡して下さい。:

定数コメント
Choice list倍長整数0選択できる値のリスト(プロパティリスト内の「選択リスト」)。(デフォルト)
Excluded list倍長整数2入力できない値のリスト。(プロパティリスト内の「除外リスト」)
Required list倍長整数1入力可能な値のリスト(プロパティリストの"指定リスト"オプション)。

この引数を省略した場合、自動的に 0 (Choice list) を渡したものとみなされます。

カレントプロセスにおいて、object, と関連付けられたリストとの関連付けを解除するためには、解除したい型のリストに対して list 引数に空の文字列 ("")を渡して下さい。

値の既存のリストは、そのリストがフォームオブジェクトに割り当てられた方法によって上書きされます:

  • 選択リストを使用した場合: リスト自身が置き換えられます
  • 配列を使用した場合: リストは配列要素にコピーされます
  • オブジェクトを使用した場合(バイナリーデータベースではサポートされていません): リストは、オブジェクト内のvalues プロパティのコレクション要素としてコピーされます

例題 1

以下の例は、Shipperフィールドに選択項目リストを設定します。船積みを夜間に行う場合、夜間に船積みすることができる船積み業者のリストを選択項目リストに設定します。それ以外の場合は通常の船積み業者に設定します:

 If([Shipments]Overnight)
    OBJECT SET LIST BY NAME([Shipments]Shipper;"Fast Shippers")
 Else
    OBJECT SET LIST BY NAME([Shipments]Shipper;"Normal Shippers")
 End if

例題 2

"color_choice" というリストを、"DoorColor"という単純なポップアップ/ドロップダウンリストと関連付ける場合:

 OBJECT SET LIST BY NAME(*;"DoorColor";Choice list;"color_choice")
  // この場合、第3引数(定数)は省略することが出来ます。

例題 3

"color_choice" というリストを "WallColor" というコンボボックスと関連付けたい場合を考えます。コンボボックスは入力可能なので、 "black"や "purple" と言った色が入力されないようにしたい場合、これらの色を "excl_colors" というリストに入れて以下の様に除外します:

 OBJECT SET LIST BY NAME(*;"WallColor";Choice list;"color_choice")
 OBJECT SET LIST BY NAME(*;"WallColor";Excluded list;"excl_colors")

例題 4

これらのリストの関連付けを解除したい場合:

  // 選択リストの解除
 OBJECT SET LIST BY NAME(*;"DoorColor";Choice list;"")
  // 入力が許可されていない値(除外リスト)の解除
 OBJECT SET LIST BY NAME(*;"WallColor";Excluded list;"")

参照

OBJECT Get list name
OBJECT SET LIST BY REFERENCE