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

Visual LANSA

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


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

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

2.    [デザイン]タブを表示します。

3.    [リポジトリ]タブで、Weblets、ub_pushb1 webletの順に探します。

4.    ub_pushb1 webletをコマンド・ハンドラーの[保存]ボタンの隣にドラッグ・アンド・ドロップします。


 

5.    [ソース]タブを表示します。

6.    次のコードをUHandleEvent webroutineの前に追加し、ボタンのキャプションをBackに設定します。

Override Field(#UB_PUSHB1) Default('Back')

Web_Map For(*both) Fields(#UB_PUSHB1)

 

7.    UHandleEventで、戻るボタン・クリック・イベントを登録します。

Invoke Method(#avFrameworkManager.avRegisterEvent) Named(UB_PUSHB1.CLICK) Signalaswamevent(2)

 

UHandleEventは、次のようになります。


 

8.    次にWAMソースの最後までスクロールし、戻るボタン・クリック・イベントを処理するイベント・ルーチンを追加します。

Evtroutine Handling(#avFrameworkManager.uWAMEvent_2) Options(*noclearmessages *noclearerrors)

Endroutine

 

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

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

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

 

#avframeworkmanager.avrestorevalue WithID1(SWITCH_HISTORY) WithID2(OBJECT_NAME) ToAValue(#ff_objnme)

#avframeworkmanager.avrestorevalue WithID1(SWITCH_HISTORY) WithID2(COMMAND_NAME) ToAValue(#ff_cmdnme)

 

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

 

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

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

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

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


 

 

10.    コマンド・ハンドラーをコンパイルしてチェックインします。

 

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

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

12.    [詳細]ボタンをクリックして、課の社員の詳細を表示します。

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


 

14.    アプリケーションを終了します。