Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../index.htm#lansa/vlftutorials_0120.htm]
Visual LANSA フレームワーク ガイド > チュートリアル > VLF-WIN アプリケーションのチュートリアル > VLF012WIN - 切り替えサービスおよび仮想クリップボードを使用したナビゲーション制御 > ステップ 3. "部門" から "社員" ビジネス・オブジェクトへの切り替えロジックを追加

...

のステップでは、"部門"のコマンド・ハンドラーにロジックを追加して、"社員"ビジネス・オブジェクトの詳細コマンド・ハンドラーに選択した社員の詳細を表示します。

...

社員の詳細コマンド・ハンドラーへの切り替えは、ボタンのクリック・イベントで実行されます。

  1. 詳細コマンド・ハンドラーの [デザイン

...

  1. ]

...

  1. タブを表示します。

  2. プッシュ・ボタンを [コントロール

...

  1. ]

...

  1. タブからコマンド・ハンドラーの右側パネル

...

  1. (PANL_1)

...

  1. にドラッグします。

  2. [レイアウト

...

  1. ]

...

  1. リボンを使って、このボタンの

...

  1. [配置

...

  1. ]

...

...

  1. [中央上

...

  1. ] にします。の余白を 10 にします。

  2. ボタンのキャプションを詳細にします。

    Image Added

  3. ボタンに Click イベントを作成します。

  4. クリック・イベントに、"社員" ビジネス・オブジェクトの詳細コマンド・ハンドラーに切り替えるステートメントを追加します。
       #avframeworkmanager.avSwitch To(BUSINESSOBJECT) NAMED(EMPLOYEES) EXECUTE(DETAILS)  Caller(#com_owner) ClearInstanceList(TRUE)

    • To パラメータには、ビジネス・オブジェクトへの切り替えであることを示す BUSINESSOBJECT が含まれています(フレームワークまたはアプリケーションに切り替えることもできます)

...

    • NAMED

...

    • パラメータには、実際のビジネス・オブジェクト名が含まれている必要があります。
    • EXECUTE

...

    • パラメータには、実行するコマンドの名前が含まれている必要があります。
    • ClearInstancList パラメータを指定すると、オプションでインスタンスリストをクリアできます。

...


  1. 次に、グリッド内の社員の値に基づいて表示するインスタンスを "社員" ビジネス・オブジェクトに伝えるイベント・ルーチンを追加します。
       Evtroutine Handling(#avFrameworkManager.avAddSwitchInstances) Options(*NOCLEARERRORS *NOCLEARMESSAGES) Caller(#Caller)
       * Make sure the caller is this component
    If_Ref Com(#Caller) Is_Not(*Equal_to #Com_Owner)
    Return
    Endif
    Invoke Method(#avFrameworkManager.avAddSwitchInstance) Businessobjecttype(EMPLOYEES) Visualid1(#xEmployeeIdentification) Visualid2(#xEmployeeSurname.AsNativeString)
    Akey1(#xEmployeeIdentification)

...

  1.    Endroutine 

    • avAddSwitchInstances イベント・ルーチンは、常に、avSwitch メソッドを使用して切り替えを実行した直後に実行されます。  このイベントを使用すると、対象のビジネス・オブジェクトのインスタントリストに配置されるデータを制御することができます。 
    • このイベントを通知するコンポーネントが Caller

...

    • パラメータに渡されます。このイベントを通知するコンポーネントがそのコンポーネント自体である場合は、このイベントでのみコードを実行することが重要です。  ですから、呼び出し元が #com_owner でない場合は、このイベント・ルーチンから戻る必要があります。  #Caller および #Com_Owner を比較するのに is_not(*Equal_to がどのように使用されているのかに注意してください。  単純な文字列ではなく、コンポーネント自体を比較しているので、この構文を使用する必要があります。
    • avAddSwitchInstance メソッドは対象のインスタンスリストに追加するデータを指定します。
    • 必要であれば、avAddSwitchInstance メソッドを繰り返し呼び出すことで、複数のエントリーを対象のビジネス・オブジェクトのインスタンスリストに配置することができます。

...

    • "社員"

...

    • ビジネス・オブジェクトの

...

    • [識別子

...

    • ]

...

    • タブで、ユーザー・オブジェクト

...

    • タイプが

...

    • EMPLOYEES

...

    • であることを確認してください。そうでない場合はこの切り替えが作動しません。

...



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

      Image Added

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

  2. 切り替えをテストします。1 人の社員を選択し、詳細コマンド・ハンドラーで [詳細] ボタンをクリックすると、選択した社員の詳細とともに社員ビジネス・オブジェクトが表示されます。

    Image Added

...