このステップでは、ナビゲーション・ペインで "部門" ビジネス・オブジェクト選択時に、部門をインスタンスリストにロードする非表示フィルターを作成します。非表示フィルターはエンドユーザーとの対話処理はなく、表示されません。
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. 部門を展開します。社員がロードされていないことに注目してください。次のステップで、社員をロードするリレーションシップ・ハンドラーを作成します。