Visual LANSA エディターでスライダー上のボタンを削除し、[ソース] タブに切り替えて次のコードを貼り付けます。

   Define_Com Class(#PRIM_MD.Edit) Name(#TestMessage) Appearance(TextFieldBox) Caption('Caption') DisplayPosition(1) Left(0) Parent(#CustomPanelBody) TabPosition(1) Top(0) Width(865) 
Placeholder('Type your message here') Height(57)
Define_Com Class(#PRIM_MD.RaisedButton) Name(#Button) Caption('Issue Message via Command Handler') DisplayPosition(2) Left(0) Parent(#CustomPanelBody) TabPosition(2)
ThemeDrawStyle('MediumAccent') Top(58) Width(865)

[デザイン] タブを表示します。これでスライダーに編集ボックスが付き、メッセージを入力できます。この隣にあるボタンにより、スライダーからフレームワークにメッセージの信号が送信されます。

 
このボタンの Click イベント・ルーチンを作成し、これに次のSignalEvent ステートメントを追加します。

   #Com_Owner.avSignalEvent Withid(ShowMessage) Notifyself(False) Sendainfo1(#TestMessage) To(FRAMEWORK)

スライダーをコンパイルします。

次に信号送信された ShowMessage イベントをリスンするコンポーネントを作成する必要があります。そのためには、まずコマンド・ハンドラーを開きます (SFRUD 例を利用している場合は、"詳細" コマンド・ハンドラー XXX_XHOMESALE_SCRUD_Handler)。 

次のイベント・ルーチンをこのコマンド・ハンドラーに貼り付けます。

   Evtroutine Handling(#Com_owner.avEvent) Withid(#EventId) Withainfo1(#AInfo1) 
If (#EventId = ShowMessage)
#AVFRAMEWORKMANAGER.avIssueMessage Text(#AInfo1) Requester(#COM_OWNER) Clearexistingmessages(True)
Endif
Endroutine

このルーチンは ShowMessage イベントをリスンし、受信するとメッセージを発行します。

コマンド・ハンドラーをコンパイルします。

ワークベンチに切り替えて、フレームワークを実行してこの信号送信をテストします。 

まず、自身のビジネス・オブジェクト内のビジネス・オブジェクト・インスタンス用の場合コマンド・ハンドラーを表示させます。次に下部スライダーを表示し、編集ボックスにメッセージを入力したら [コマンド・ハンドラー経由でメッセージ発行] のボタンをクリックします。

 

メッセージがコマンド・ハンドラーのステータス・バーに表示されます。

 

フレームワーク実行時にトレースをオンにすれば、このイベントがどのように信号を送り、受信されているか確認することもできるでしょう。これを行うには、[VLF-ONE アプリケーションとしてフレームワークを実行] のダイアログ内で [トレースをオンにする] のオプションを選択します。

この時、信号受信のテストを行う前に [トレースをクリア] をクリックして、事前にトレースをクリアしておくと良いでしょう。

  • No labels