You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

[ |../../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]
  • No labels