OBJECT SET ENTERABLE コマンドは、objectで指定したフォームオブジェクトを入力可または入力不可に設定します。
オプションの * 引数を指定した場合、objectはオブジェクト名です (文字列) 。オプションの * 引数を省略すると、objectはフィールドまたは変数です。この場合、文字列ではなくフィールドまたは変数参照 (フィールドまたは変数のみ) を指定します。オブジェクト名に関する詳細は オブジェクトプロパティ を参照してください。
このコマンドを使用することは、フォームエディタのプロパティリストウィンドウでフィールドや変数に対し入力可を設定することと同じです。このコマンドは、サブフォームのフォームメソッド内で使用されている場合にのみ、そのサブフォーム内で機能します。
entryArea入力可能 (True) であれば、ユーザはそのエリアにカーソルを移動してデータを入力することができます。entryAreaが入力不可 (False) の場合、ユーザはそのエリアにカーソルを移動してデータを入力することはできません。
また、サブフォームとMODIFY SELECTIONやDISPLAY SELECTIONコマンドを用いて表示されたリストフォームに対して、プログラムからリスト更新可モードを有効にするために、OBJECT SET ENTERABLEコマンドを使用することもできます:
- サブフォームの場合、entryArea引数にサブフォームテーブル名またはサブフォームオブジェクト名を渡すことができます。例: OBJECT SET ENTERABLE(*;"Subform";True)
- リストフォームの場合、entryArea 引数にはフォームのテーブル名を渡さなくてはなりません。例: OBJECT SET ENTERABLE([MyTable];True)
オブジェクトを入力不可にしても、プログラムから値を変更することはできます。
注: リストボックスのセルを入力不可にするためには、On Before Data Entryイベント内の$0に-1の値を渡します。この点については、入力の管理を参照して下さい。
以下の例は、船積みの重量に応じて、船積みフィールドを設定します。船積みが1オンス以下の場合は、shipperに米国郵便を設定しこのフィールドを入力不可にします。それ以外の場合には、入力可に設定します。
If([Shipments]Weight<=1)
[Shipments]Shipper:="US Mail"
OBJECT SET ENTERABLE([Shipments]Shipper;False)
Else
OBJECT SET ENTERABLE([Shipments]Shipper;True)
End if
次の例は、リストのヘッダに配置されたチェックボックスのオブジェクトメソッドであり、リスト更新モードを制御します:
C_BOOLEAN(bEnterable)
OBJECT SET ENTERABLE([Table1];bEnterable)