[ |../../index.htm#lansa/lansa048_6070.htm]
Visual LANSA フレームワーク ガイド > フレームワーク・プログラミング > インスタンスリストとインスタンスリスト・マネージャー > 複数の種類のオブジェクトがあるインスタンスリスト > 子の追加 (VLF-ONE の場合)
子の追加 (VLF-ONE の場合)
VLF-ONE では、当然のことながらインスタンスリストの各エントリーに一意のキーが必要です。
しかし、親と子リスト・アイテムの関係はとても簡単に作ることができます。
以下はその例です。
- 一時的に社員データ・アイテムを保存するための参照を定義
Define_Com Class(#VF_LM003O) Name(#ParentEmployeeItem) Reference(*DYNAMIC) - 親の社員エントリーを取得し、#VF_LM003O アイテム参照を返す
#avListManager.AddtoList Akey1(#Empno) Visualid1(#Empno)
Visualid2(#GiveName+ #SurName)
Dataitem(#ParentEmployeeItem) - この社員にスキルの子アイテムを追加
社員 #Empno が持つスキルごとに繰り返す - 追加された社員の子としてスキルのインスタンスリスト・エントリーを追加
#avListManager.AddtoList Akey1(#Empno) Akey2(#SKILCODE)
Visualid1(#Skilcode) Visualid2(#SkilDesc)
ParentDataItem(#ParentEmployeeItem)
Endfor
以下に注意してください。#VF_LM003O アイテム参照を処理する際は、これらの参照を保管しないでください。アプリケーションがリークする恐れがあります。この参照がコード内で全体的に検査される場合は、使用後には必ず*NULL に設定するようにしてください。
このサンプルは、提供されている例 Examples -> Advanced -> Children を参照してください。
VLF-ONE のツリー・ビジュアライゼーションは VLF-WIN と異なることに注意してください。
親と子を別の方法で表示したい場合、(提供例 Person のように) カスタム・パネルのリストを作成する、もしくは独自のカスタムのインスタンスリスト・ブラウザを作成し、スナップ・インします。
親子リレーションをうまく利用するには、以下に注意してください。|1.
ビジネス・オブジェクトは、親と子のそれぞれに対して定義する必要があります。
例えば、提供されている VLF-ONE の Children 例では、親が PARENT_PRODUCT、子は CHILD_ORDER および CHILD_SUPPLIER です。
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="5dac257e-f4cf-42f6-8af3-a34ba1298ebe"><ac:plain-text-body><![CDATA[
2.
親と子のリレーションは、親の [インスタンスリストの設定] タブで定義する必要があります。
]]></ac:plain-text-body></ac:structured-macro>
例えば、提供されているデモの PARENT_PRODUCT には、次のようなリレーションが定義されています。
3.
インスタンスリストにアイテムを追加する時、ユーザー・オブジェクト名と親アイレムを指定する必要があります。
インスタンスリストへのアイテム追加時、以下を指定してください。
AddToList メソッドの Businessobjecttype() パラメーターにユーザー・オブジェクト名
アイテムが子の場合、ParentDataItem() パラメーターに親アイテム
[ |../../index.htm#lansa/lansa048_6070.htm]