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