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