Visual LANSA フレームワーク ガイド > フレームワーク・プログラミング > VLF フレームワーク・マネージャー > フレームワーク・ウィンドウの管理 > プログラムによるウィンドウの作成・管理 > ウィンドウを開く際に渡す情報
ウィンドウを開く際に渡す情報

VLF-WIN では、avShowWindowメソッドによりウィンドウを開く、またはアクティブ化する際、パラメータOpenInfo1~OpenInfo5およびOpenObjectRefを使って情報を渡すことができます。

 

最大256字の文字列を5つまでと、さらにオブジェクト参照を渡し、ウィンドウ間で情報をやり取りすることができるのです。

 

例えば、フィルターやコマンド・ハンドラーでDEMO_WINDOWというウィンドウを開き、文字列を5つ渡す場合、次のように記述します。

 

#AvFrameworkManager.avShowWindow Caller(#Com_Owner) For(BUSINESSOBJECT) ofType(EMPLOYEES) WindowName(DEMO_WINDOW) OpenInfo1('Test String 1') OpenInfo2('Test String 2')  OpenInfo3('Test String 3')  OpenInfo4('Test String 4')  OpenInfo5('Test String 5')   

 

DEMO_WINDOW内のフィルターまたはコマンド・ハンドラーに、次のような処理があるとします。

 

Use Message_box_Add ('In window named'#Com_Owner.avCurrentWindow.WindowName)

Use Message_box_Add ('OpenInfo1 ='#Com_Owner.avCurrentWindow.OpenInfo<1>)

Use Message_box_Add ('OpenInfo2 ='#Com_Owner.avCurrentWindow.OpenInfo<2>)

Use Message_box_Add ('OpenInfo3 ='#Com_Owner.avCurrentWindow.OpenInfo<3>)

Use Message_box_Add ('OpenInfo4 ='#Com_Owner.avCurrentWindow.OpenInfo<4>)

Use Message_box_Add ('OpenInfo5 ='#Com_Owner.avCurrentWindow.OpenInfo<5>)

Use message_box_show

 

すると次のように表示されます。

 

  

ウィンドウを開く際に渡された情報には、当該ウィンドウへのクラス#VF_SY154参照を取得してアクセスします(「ウィンドウを検索」、「ウィンドウをすべて列挙」を参照)。

 

あるウィンドウを開く際に使った情報を更新するためには、次のように、OpenInfoプロパティを使います(これはMAINウィンドウの例)。

 

#Com_Owner.avMainWindow.OpenInfo<1> := "Return String 1"

#Com_Owner.avMainWindow.OpenInfo<2> := "Return String 2"

#Com_Owner.avMainWindow.OpenInfo<3> := "Return String 3"

#Com_Owner.avMainWindow.OpenInfo<4> := "Return String 4"

#Com_Owner.avMainWindow.OpenInfo<5> := "Return String 5"

  

OpenObjectRefプロパティは、ウィンドウ間でオブジェクト参照をやり取りするために使います。この方法を使えば、どのような量や型の情報でもやり取りできます。  

OpenInfoデータを使うため、新しいウィンドウのフィルターまたはコマンド・ハンドラーを取得したい場合は、uShowWindowCompletedメソッドの呼び出しを当該フィルターやコマンド・ハンドラーに追加する必要があります。詳細については、「他のウィンドウにイベントを通知する」を参照してください。