このステップでは、ナビゲーション・ペインで "部門" ビジネス・オブジェクト選択時に、部門をインスタンスリストにロードする非表示フィルターを作成します。非表示フィルターはエンドユーザーとの対話処理はなく、表示されません。

  1. Visual LANSA エディターを表示します。

  2. 再利用可能パーツを作成します。フィルター名としてiiiCOM08、説明に部門非表示フィルターと指定します。(ここで iii は入力者のイニシャルです。Visual LANSA の非ライセンス版または試行版を使っている場合は、DEMCOMnn の形式にする必要があります)。

  3. [詳細] タブで、再利用可能パーツの [Ancestor] に VF_AC007 を指定します。


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

  5. BEGIN_COM ステートメントの後に次の uInitialize ルーチンを作成します。
       Mthroutine Name(uInitialize) Options(*Redefine)
    Endroutine

    オートコンプリート・プロンプター をオンにした場合は、Endroutine ステートメントが自動的に作成されます。
     
  6. uInitialize ルーチンで、フィルターを非表示にし、実行時に表示されるものをインスタンスリストだけにします。
       Set #Com_Owner avHiddenFilter(TRUE)
     
  7. 次に、インスタンスリストの更新がまもなく開始され、その後インスタンスリストがクリアされることを指定します。
       Invoke #avListManager.BeginListUpdate
    Invoke #avListManager.ClearList
     
  8. 全ての部門を読み込み、インスタンスリストに追加します。
       Select Fields(#xDepartmentCode #xDepartmentDescription) From_File(xDepartments)
    Invoke Method(#avListManager.AddtoList) Visualid1(#xDepartmentDescription) Visualid2(#xDepartmentCode) Akey1(#xDepartmentCode) Ncolumn1(0) Acolumn1('') Acolumn2('') Acolumn3('')
    Acolumn4('') Acolumn5('') Acolumn6('') Acolumn7('')
    Endselect

    注意:AddToList で追加列を初期化する必要があります。これは、後で社員のエントリーをこれらの列に取り込んだリストを生成するからです。

  9. 最後に、インスタンスリストの更新がこれで完了したことを示します。
       Invoke #avListManager.EndListUpdate

    コードは以下のようになります。



  10. フィルターをコンパイルします。

  11. フレームワーク、次に "部門" オブジェクトのプロパティを表示します。

  12. [フィルター] > [フィルター登録の設定] タブを表示します。

  13. VLF-WIN コンポーネントの識別子として iiiCOM08 の識別子を指定します。


     
  14. "部門" の'プロパティを閉じます。

  15. "社員" ビジネス・オブジェクトをクリックして、次に "部門" をクリックすると、非表示フィルターがインスタンスリストに部門をロードします。


     
  16. 部門を展開します。社員がロードされていないことに注目してください。次のステップで、社員をロードするリレーションシップ・ハンドラーを作成します。
  • No labels