ステップ5. 切り替え履歴を使用して元のビジネス・オブジェクトに戻る

Visual LANSA

ステップ5. 切り替え履歴を使用して元のビジネス・オブジェクトに戻る


このステップでは、切り替え履歴を使用してエンド・ユーザーが切り替えを開始したSectionsビジネス・オブジェクトに戻れるようにします。

1.    Employeesの詳細コマンド・ハンドラーiiiCOM03を開きます。

2.    [お気に入り]タブの[共通の制御]タブを表示し、プッシュ・ボタンを[保存]ボタンの下にドラッグします。

3.    ボタンのキャプションを[戻る]にします。

4.    ボタン名をBACK_BTNにします。

5.    ボタンにクリック・イベントを追加します。

6.    クリック・イベントに、次のコードを追加し、ユーザーがボタンをクリックしたときに元のビジネス・オブジェクトに戻されるようにします。

EVTROUTINE HANDLING(#BACK_BTN.Click)

 

define field(#ff_objnme) TYPE(*CHAR) LENGTH(32) DESC('Object Name')

define field(#ff_cmdnme) TYPE(*CHAR) LENGTH(32) DESC('Command Name')

 

* Determine the business object name to switch to

#avFrameworkManager.avrestorevalue WithID1(SWITCH_HISTORY) WithID2(#com_owner.Avobjecttype) WithID3(#com_owner.Avcommandtype) WithID4(OBJECT_NAME) ToAValue(#ff_objnme)

 

* Determine which command within the business object to switch to

#avFrameworkManager.avrestorevalue WithID1(SWITCH_HISTORY) WithID2(#com_owner.Avobjecttype) WithID3(#com_owner.Avcommandtype) WithID4(COMMAND_NAME) ToAValue(#ff_cmdnme)

 

* Perform the switch

#avframeworkmanager.avSwitch To(BUSINESSOBJECT) NAMED(#ff_objnme) EXECUTE(#ff_cmdnme) Caller(#com_owner)

 

ENDROUTINE

 

·         ユーザーを切り替えを開始したコンポーネントに戻す場合は、仮想クリップボードで切り替え履歴を参照する必要があります。戻り先となるビジネス・オブジェクトとコマンドの両方を取得する必要があります。それには、仮想クリプボードから2つの値を取得する必要があります。

·         コードで、まずOBJECT_NAME(ビジネス・オブジェクトの値)を、次にCOMMAND_NAME(コマンドの値)を取得します。

·         コンポ―ネント名はハード・コーディングしません。そのため、avobjecttype (ビジネス・オブジェジェクト名)およびavcommandtype (コマンド名)がWithID2パラメータとWithID3パラメータに対する値として使用されました。

·         これら2つの値を取得している場合は、もう1度切り替えを実行して以前のコンポーネントに戻ることができます。

·         上記のコードでは、取得されたビジネス・オブジェクトは#ff_objnmeフィールドに、取得されたコマンドは#ff_cmdnmeフィールドに入りました。これで、以前に学習したものと同じテクニックを使用するだけで、ビジネス・オブジェクトに切り替え、コマンドを実行できるようになりました。

 コードは、次のようになります。

 

 

7.    コマンド・ハンドラーをコンパイルします。

 

これで、切り替え履歴をテストする準備が整いました。

8.    フレームワークで、Department Sectionsビジネス・オブジェクトから課を選択します。

9.    Sectionsの詳細コマンド・ハンドラーで社員を選択します。

10.    [詳細]ボタンをクリックして、選択した社員の詳細を表示します。

11.    Employeesビジネス・オブジェクトの詳細コマンド・ハンドラーで、[戻る]ボタンをクリックしてSectionsビジネス・オブジェクトに戻ります。