最近のアクセス:
Mode 変数

Transaction オブジェクトが動作するモードを指定します。
データタイプ:
Character(3)

適用範囲

オブジェクト: TransactionWWSD

INS   挿入。これが既定値です。
 UPD    更新。
DLT  削除。
DSP  表示。
 
: これらの値は TrnMode ドメインでも使用できます。

説明

&Mode 標準変数は、実行時にトランザクションが動作できるモードを定義するために使用します。
呼び出し元のプログラムでは、&Mode 変数をパラメーターとして受け取るトランザクションに対して、有効なモード値をパラメーターとして渡します。

受け取ったモードはトランザクションの第 1 レベルに影響を与え、変更することはできません。したがって、2 つ以上のレベルを持つトランザクションでは、挿入 (INS)、表示 (DSP)、または更新 (UPD) の値を持つ &Mode 変数をパラメーターとして受け取ることができます。第 2 レベルでは 3 つのモード (挿入、更新、または削除) をすべて使用できます。
受け取ったモードが削除 (DLT) であれば、カスケード削除が実行されます。

Display Mode をパラメーターとして受け取ったトランザクションでは、従属項目属性を受け付けず、データベースの更新と情報のロックも行いません。レコードのロードのみを行います (ルールは条件によって異なります)。ナビゲーションボタンと [ 終了 ] ボタンは有効です。その他のボタンは無効です。キーを有効にするかどうかは、NoAccept ルール、またはキーがパラメーターとして受け取られたかどうかによって異なります。残りのフィールドは無効です。
ほかのモード (更新、削除、および挿入) と同様に、表示モードもルールで評価することができます。
: 値では大文字と小文字が区別されます。

アクションのトリガー

イベント: Start および Exit イベントのみがトリガーされます。
ルール: 次の条件を満たすルールのみがトリガーされます:
  • ナビゲーションで、レコードの「Read」の前に現れる
  • 更新モードに条件設定されている場合
  • トランザクションのキーのみに依存する場合

パネル

&Mode 変数を WWSD の Section ノードと Detail ノードで使用できます。このアプローチは、エンドユーザーがこれらのいずれかのパネルにアクセスしたときに表示する情報を実行環境で決定するのに役立ちます。次の表は、&Mode 変数の使用可否を示しています。
  クライアント サーバー
Detail
Section
(表示モード)
Section
(編集モード)
×
 
: トランザクションが受け取った &Mode の値は変更できません。変更した場合、対応するプログラムが生成されません。

Web パネルがトランザクションを呼び出して、注文書の挿入、更新、削除、または表示を行います。

ケース 1

ルール:
トランザクションは、&Mode と注文書識別子をパラメーターとして受け取ります。
Parm(&OrderNumber, &Mode);
OrderNumber = &OrderNumber If Update Or Delete;
Noaccept(OrderNumber) If Update Or Delete;
更新または削除モードが有効になると、レコードのキーにパラメーター渡しの値が割り当てられます。挿入モードが有効になった場合、キーにはプリセット値がありません。このため、ユーザーは有効なキー値を入力する必要があり、また、多くの注文書を挿入できます。

ケース 2

ルール:
Parm(OrderNumber, &Mode);
OrderNumber はキー項目属性で、パラメーター渡しの値を受け取ると、3 つのモードすべてでキーが修正されます。更新、削除、または挿入できるレコードは 1 つだけです。挿入を行う場合、値はパラメーターとして渡されているため、新しいレコードのキーを入力する必要がありません。したがって、挿入モードでも、キーはトランザクションに渡されます。この場合、レコードに対するアクションが完了した後に、プログラムは自動的に呼び出し元プログラムに戻ります。

ケース 3

エンドユーザーがどのモードでパネルにアクセスするかに応じて、フォームのキャプションを変更するものとします。
次の例では、エンドユーザーが削除モードでパネルにアクセスしたときに、削除を確認するヘッダーテキストを表示しています。
Event ClientStart
    if &Mode = TrnMode.Delete
        Form.Caption = format("Delete customer %1?", CustomerId)
    endif
EndEvent

参考情報

標準変数リスト




サブページ
Created: 18/10/29 20:21 by Admin Last update: 23/04/24 18:07 by Admin
カテゴリ
Powered by GXwiki 3.0