最近のアクセス:
NoAccept ルール

エンドユーザーの操作によってフィールドの値が変更されることを防ぎます。ほとんどの環境では、条件に該当する場合にフィールドが無効になります (エンドユーザーの入力が不可能になります)。
ユーザーの入力を無効にできない場合は (ビジネスコンポーネント、iSeries など)、入力値は無視されます。

構文

NoAccept(att | &var) [ IF condition ] [ ON triggering event ] ;

入力値の説明:
att | &var
   
Web Panel オブジェクトおよび Panel オブジェクトで変数のみ編集可能です。したがって、これらのオブジェクトでは、このルールを変数に対して使用できます。Transaction オブジェクトでは、項目属性が編集可能です。したがって、ほとんどの場合、このルールは項目属性に対して使用されます。Accept ルールを定義した場合、トランザクションで変数が受け入れられます。

condition
   ルールをトリガーするために必要な条件です。

triggering event
   トランザクション内のルールをトリガーするイベントを参照してください。

適用範囲

オブジェクト: TransactionWeb PanelPanelWork Panel
ジェネレーター: .NET.NET FrameworkJava、RPG、Cobol、Visual FoxPro (GeneXus X Evolution 3 まで)、Ruby (GeneXus X Evolution 3 まで)

説明

NoAccept ルールでは、エンドユーザーはフィールドの値を変更できません。ほとんどの環境では、条件に該当する場合にフィールドが無効になります (エンドユーザーの入力が不可能になります)。ユーザーの入力を無効にできない場合は (ビジネスコンポーネント、iSeries など)、入力値は無視されます。
GeneXus は、どの項目属性または変数が入力/出力に対応するか評価します。しかし、GeneXus で入力項目属性/変数とみなされているものに対して、エンドユーザーにデータ入力させたくない場合があります。このような場合に、NoAccept ルールを使用して、入力不可能なフィールドを定義します。また、条件と組み合わせて使用することもできます。
Web Panel オブジェクトまたは Panel オブジェクトに表示されるどの変数も、NoAccept ルールを定義しない限り、既定で入力可能な変数になります。したがって、このルールは変数を受け入れてはならないことを指定します。
このルールを宣言する場合、別のルールを含む項目属性または変数に値を割り当てることができます。

NoAccept(ProductDescription); // 条件なしの NoAccept 
NoAccept(CustomerCreditLimit) if CustomerCategoryId = 1; // 条件付きの NoAccept
注:
  • &var は、SDT の変数でもかまいません。この場合は、NoAccept(&var) と記述するだけで、SDT のすべてのエレメントが入力不可能になります。
  • 条件による Noaccept: NoAccept ルールの項目属性/変数を入力する前に、条件が評価可能になっている必要があります。つまり、その条件に関する項目属性/変数に値が存在するようにしてから、ルールをトリガーする必要があります。条件付き NoAccept ルールは、トランザクションでのみ有効です。
  • 主キーに対する NoAccept ルールは、ビジネスコンポーネントのメソッド (Load、Insert、Update、InsertOrUpdate) には適用されません。
  • NoAccept ルールは分析時に、No Accept 条件の場合は {att|&var}.Enabled = 0 として、その他のセクションの場合は {att|&var}.Enabled = 1 として展開されます。
  • 前の例の条件付きルールを見ると、オブジェクトのナビゲーション表示に次のコードが表示されます。
条件が 1 つの場合:
ルール:
NoAccept(CustomerCreditLimit) if CustomerCategoryId = 1;
ナビゲーション表示:
CustomerCreditLimit.Enabled = 0 If CustomerCategoryId = 1; 1 OTHERWISE;
これは、CustomerCategoryId 項目属性の値が 1 の場合、ルールによって CustomerCreditLimit 項目属性が無効になることを意味しています。そうでない場合は、有効なままになります。 
条件が複数ある場合:
ルール:
NoAccept(CustomerDiscount) if CustomerDate > Today() and CustomerActive = false and CustomerAmount = 0;
ナビゲーション表示:
CustomerDiscount.Enabled = 0 IF CustomerDate > today() and CustomerActive = FALSE and CustomerAmount = 0; 1 OTHERWISE;
これは、CustomerDate 項目属性の値が < Today()、CustomerActive 項目属性の値が False、および CustomerAmount 項目属性の値が 0 の場合、ルールによって CustomerDiscount 項目属性が入力不可能になるが、その他の場合は入力が可能であることを意味しています。
  • 異なる条件付き NoAccept を設定する場合、互いに競合が発生する場合があるので、定義する条件には注意が必要です。

参考情報

[ Enabled ] プロパティ
   



サブページ
Created: 14/09/18 03:19 by Admin Last update: 23/01/29 23:45 by Admin
カテゴリ
Powered by GXwiki 3.0