4D v14.3REJECT |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
REJECT
|
REJECT {( aField )} | ||||||||
引数 | 型 | 説明 | ||||||
aField | フィールド |
![]() |
入力を拒否するフィールド | |||||
REJECT には2つの形式があります。第1の形式は、引数がありません。これは、データ入力全体を取り消し、ユーザは強制的にフォーム上にとどまります。第2の形式は、aField だけを取り消し、ユーザは強制的にそのフィールド上にとどまります。
Note: このコマンドを使用する前に、組み込みのデータ検証ツールの利用を考慮すべきです。
REJECTコマンドの第1の形式では、完全でないレコードをユーザが受け入れないようにします。REJECTを使用しなくても同じ効果を得ることができます。フィールドが正しく入力された後、テンキー側の“enter”キーをショートカットとした「動作なし」ボタンのオブジェクトメソッドでACCEPTコマンドとCANCELコマンドを使用してレコードの受け入れや取り消しを行います。REJECTコマンドの第1の形式よりも、上記の2番目の手法を利用することをお勧めします。
第1の形式を使用する場合には、REJECTコマンドを実行してユーザがレコードを受け入れないようにしますが、通常これはレコードが完全ではなかったり、不正確な入力が行われたために行います。ユーザがレコードを受け入れようとすると、REJECTコマンドの実行によりレコードが受け入れられません。そしてこのレコードはフォーム上に表示されたままになります。したがって、ユーザはレコードが受け入れられるか、あるいは取り消されるまでデータの入力を続行しなければなりません。
この形式のREJECTコマンドを実行するのに最適な場所は、テンキー側の“enter”キーをショートカットとして割り当てた登録ボタンのオブジェクトメソッドです。この場合のデータのチェックは、レコードが受け入れられた場合にのみ実行されます。ユーザは“enter”キーを押して、データをチェックしないで済ませることはできません。
REJECTコマンドの第2の形式は、引数fieldを渡します。カーソルは、フィールドエリアにとどまります。この形式は、ユーザが正しい値を入力するように強制します。この場合、フィールドの修正の直後にREJECTコマンドを使用しなければなりません。Modified 関数を使用して、修正されたかどうかを判定します。データ入力エリアのオブジェクトメソッドでREJECTコマンドを使用することもできます。このコマンドは、サブフォームエリア上のフィ-ルドでは動作しません。
REJECTコマンドのいずれかの形式をフォームメソッドまたはオブジェクトメソッドに記述しなければなりません。あるテーブルのサブフォームの詳細フォームにREJECTコマンドを使用する場合は、詳細フォームのフォームメソッドまたはオブジェクトメソッドに記述します。
取り消されたフィ-ルドのデータを選択するために、HIGHLIGHT TEXTコマンドを使用することができます。
以下の例題は銀行のトランザクション記録です。これは一番目の形式のREJECTを受け入れボタンで使用する方法を示しています。Enterキーがこのボタンのショートカットとして設定されています。つまりユーザがレコードを受け入れるためにEnterキーを押したとしても、ボタンのオブジェクトメソッドが実行されます。トランザクションが小切手であれば、小切手番号が必須です。小切手番号がなければれレコード保存は拒否されます:
Case of
:(([Operation]Transaction="Check") & ([Operation]Check Number="")) ` If it is a check with no number...
ALERT("Please fill in the check number.") ` Alert the user
REJECT ` Reject the entry
GOTO OBJECT([Operation]Check Number) ` Go to the check number field
End case
以下の例は[Employees]Salaryフィールドのオブジェクトメソッドの一部です。このオブジェクトメソッドは、[Employees]Salaryフィールドを調べて1万ドル以下の場合には取り消しします。「フォーム」エディタでフィールドの最小値を指定しても、同じ処理を実現することができます:
If([Employees]Salary<10000)
ALERT("給与は$10,000を超えなければなりません。")
REJECT([Employees]Salary)
End if
プロダクト: 4D
テーマ: 入力制御
番号:
38
初出: < 4D v6
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v12.4)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)
Inherited from : REJECT ( 4D v11 SQL Release 6)