ステップ3 Company Departmentsに非表示フィルターを作成する
このステップでは、ナビゲーション・ペインでCompany Departmentsビジネス・オブジェクトを選択した場合にCompany Departmentsをインスタンス・リストにロードする非表示フィルターを作成します。非表示フィルターにはエンド・ユーザーとの対話処理はないので、このフィルターは表示されません。
1. Visual LANSAエディターを表示します。
2. 再利用可能パーツを作成します。フィルター名としてiiiCOM08、説明に部門非表示フィルターと指定します(ここでiiiは入力者のイニシャルです。Visual LANSAの非ライセンス版または試行版を使っている場合は、iiiの部分をDEMとする必要があります)。
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(#Deptment #DeptDesc) From_File(DEPTAB)
Invoke #avListManager.AddtoList Visualid1(#DeptDesc) Visualid2(#Deptment) AKey1(#Deptment) BusinessObjectType(COMPANY_DEPARTMENTS) NColumn1(0) Acolumn1('') Acolumn2('') Acolumn3('') Acolumn4('') Acolumn5('') Acolumn6('') Acolumn7('')
EndSelect
注:AddToListで追加カラムを初期化する必要があります。後でDepartment Sectionsのエントリーをこれらのカラムに取り込んだリストを生成するからです。
9. 最後に、インスタンス・リストの更新がこれで完了したことを示します。
Invoke #avListManager.EndListUpdate
完成したコードは、次のようになります。
10. フィルターをコンパイルします。
11. フレームワーク、次にCompany Departmentsオブジェクトのプロパティを表示します。
12. フィルター登録の設定タブを表示します。
13. iiiCOM08を実際のフィルターとして指定します。
14. Company Departmentsのプロパティを閉じます。
15. EmployeesおよびCompany Departmentsを再度クリックし、非表示フィルターによって部門がインスタンス・リストにロードされるようにします。
16. 部門を展開します。Department Sectionsがロードされていないことに注意してください。次のステップで、課をロードするリレーション・ハンドラーを作成します。