ウィンドウを開く際に渡す情報

Visual LANSA

ウィンドウを開く際に渡す情報


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メソッドの呼び出しを当該フィルターやコマンド・ハンドラーに追加する必要があります(「他のウィンドウにイベントを通知する」を参照)。