このステップでは、ナビゲーション・ペインで "部門" ビジネス・オブジェクト選択時に、部門をインスタンスリストにロードする非表示フィルターを作成します。非表示フィルターはエンドユーザーとの対話処理はなく、表示されません。
- Visual LANSA エディターを表示します。
- 再利用可能パーツを作成します。フィルター名としてiiiCOM08、説明に部門非表示フィルターと指定します。(ここで iii は入力者のイニシャルです。Visual LANSA の非ライセンス版または試行版を使っている場合は、DEMCOMnn の形式にする必要があります)。
- [詳細] タブで、再利用可能パーツの [Ancestor] に VF_AC007 を指定します。
- [ソース] タブを表示します。
- BEGIN_COM ステートメントの後に次の uInitialize ルーチンを作成します。
Mthroutine Name(uInitialize) Options(*Redefine)
Endroutine
オートコンプリート・プロンプター をオンにした場合は、Endroutine ステートメントが自動的に作成されます。
- uInitialize ルーチンで、フィルターを非表示にし、実行時に表示されるものをインスタンスリストだけにします。
Set #Com_Owner avHiddenFilter(TRUE)
- 次に、インスタンスリストの更新がまもなく開始され、その後インスタンスリストがクリアされることを指定します。
Invoke #avListManager.BeginListUpdate
Invoke #avListManager.ClearList - 全ての部門を読み込み、インスタンスリストに追加します。
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 で追加列を初期化する必要があります。これは、後で社員のエントリーをこれらの列に取り込んだリストを生成するからです。
- 最後に、インスタンスリストの更新がこれで完了したことを示します。
Invoke #avListManager.EndListUpdate
コードは以下のようになります。 - フィルターをコンパイルします。
- フレームワーク、次に "部門" オブジェクトのプロパティを表示します。
- [フィルター] > [フィルター登録の設定] タブを表示します。
- VLF-WIN コンポーネントの識別子として iiiCOM08 の識別子を指定します。
- "部門" の'プロパティを閉じます。
- "社員" ビジネス・オブジェクトをクリックして、次に "部門" をクリックすると、非表示フィルターがインスタンスリストに部門をロードします。
- 部門を展開します。社員がロードされていないことに注目してください。次のステップで、社員をロードするリレーションシップ・ハンドラーを作成します。



