特定のトランザクションレベルの完了を示します。
AfterLevel [ level att… ] ;
Boolean (True または False)
AfterLevel イベントの評価はブール値 (True または False) を返します。
AfterLevel level att.イベントは、特定の項目属性に関連付けられたレベルの完了後にルールをトリガーするために使用されます。セクションレベルが使用されていない場合は、トランザクションの最初のレベルに適用されます。
Java、.NET Win 環境、および Web インターフェースでは、すべてのトランザクションを検証した後に必ずルールが実行されます。
After(Level(att)) 関数は、下位互換性を保つために残されています。AfterLevel イベントを使用されることを強くお勧めします。詳しくは、「ルールをトリガーするイベント」を参照してください。
サプライヤーから請求書を受け取った後、請求書の合計金額が正しく計算されていることを検証します。
サプライヤー請求書トランザクション
SupId*
InvNbr*
...
InvTot
(PrdId*
...
InvAmtLin)
...
InvTotCalc=SUM(InvAmtLin)
InvTot は、サプライヤーが計算した合計請求額です。
InvTotCalc は、各行に入力された金額の加算値です。
これら 2 つの値が一致するように、以下のルールを定義します:
Error('Invoice Total does not match Calculated Total') If InvTot <> InvTotCalc;
InvTotCalc は、行の金額 (InvAmtLin) を合計した値です。行の金額の値が変更されるたびに、新しい InvTotCalc の値が取得されます。
項目属性が変更されるたびに、その値に基づくすべての値を再計算する必要があります。InvAmtLin が変更されると、InvTotCalc が再計算されます。条件が True の場合には、入力された各行についてエラールールをトリガーする必要があります。このルールすべての行が入力されるまで適用されます。このため、InvTot が入力された直後からグリッドの各行でエラーが発生します (実際には、エラールールは InvTot にフォーカスし続けるため、グリッドの最初の行にフォーカスを移すことができません)。
この場合、すべての行が入力されるまで待機し、エラールールの評価を行うタイミング (行レベル終了時) を変更する必要があります。
Error('Invoice Total does not match Calculated Total') If InvTotCalc <> InvTot On AfterLevel level InvAmtLin;
オブジェクト: Transaction
言語: .NET、Ruby (GeneXus X Evolution 3 まで)、Java、RPG、Visual FoxPro (GeneXus X Evolution 3 まで)、COBOL
After 関数
トランザクションルール
ルールをトリガーするイベント
|