You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

[ |../../index.htm#lansa/l4wdev06_0925.htm]
現在地:

2.15.4.4 ステップ4. 再利用可能パーツへの機能の追加

この段階では、部門の再利用可能パーツは便利ではありません。部門のリストを表示でき、ユーザーが1つを選択できますが、結果として何も発生しません。実際には、再利用可能パーツで以下のことができなくてはなりません。

  • 現在選択されている部門の変更
  • 現在選択されている部門の通知
  • 現在選択されている部門が変更されたときの通知

すべてのLANSAコンポーネントは、標準のプロパティ、イベント、およびメソッドのインターフェースを持つので、これらのインターフェースを使用して再利用可能パーツに必要な状態の変更とアクティビティを実行させる必要があります。
uCurrDepartmentという名前の1つのプロパティとuDepartmentChangedという名前の1つのイベントがこのジョブを実行します。
uDepartmentChangedイベントの実装
1.      再利用可能パーツを編集し、コンボ・ボックスのフォーカスが変更されたときにuDepartmentChangedイベントを送信するようにします。イベントを以下のように定義します。
define_evt uDepartmentChanged help('このイベントは部門選択が変更されると起動します')
 
2.      イベントを以下のように通知します。 
EVTROUTINE HANDLING(#COMBOBOX.ItemGotFocus) 
Signal uDepartmentChanged 
ENDROUTINE
 
uCurrDepartmentプロパティの実装
再利用可能パーツを編集し、以下のことを行うuCurrDepartmentという名前のプロパティを定義します。

  • #DEPTMENTフィールドの値を返すget処理のサポート
  • #DEPTMENTフィールドの値を設定し、コンボ・ボックスのフォーカスを選択された部門に移動するset処理のサポート

1.      このためには、以下のようにプロパティを定義する必要があります。
define_pty name(uCurrDepartment) get(*auto #deptment) set(SetDepartment) 
 
2.      それからSetDepartmentプロパティのプロパティ・ルーチンを以下のように追加します。
PTYROUTINE SetDepartment define_map for(*input) class(#deptment) name(#sdeptment) selectlist #combobox    continue if('#deptment *ne #sdeptment.Value')     set #ComboBox.CurrentItem Focus(True)     return endselect ENDROUTINE
 
3.      再利用可能パーツの新しいバージョンをコンパイルします。
フォームでの新しいプロパティとイベントの使用
1.      テスト・フォームを編集し、以下の1行を追加して社員の詳細が取得されるときに再利用可能パーツに新しい部門の詳細を表示するよう通知する必要があります。
Set #II_RVP29A uCurrDepartment(#deptment)
 
         さらに、監視してビジュアル・コンポーネントを変更する必要があります。uDepartmentSelectedイベントを送信するときは、常に以下のルーチンを使用して#DEPTMENTフィールドの値を変更する必要があります。 
EVTROUTINE HANDLING(#II_RVP29A.uDepartmentChanged) Change #deptment #II_RVP29A.uCurrDepartment ENDROUTINE
 
2.      最後にフォームのフィールド #DEPTMENT を Read-Only(True) にし、インターフェースから変更できないようにします。実際には、#DEPTMENTフィールドをフォームに置くことはあまりありませんが、このエクササイズのために内容を見ることができるようにしました。
3.      テスト・フォームを再コンパイルします。
4.      フォームの新しいバージョンをテストします。社員の詳細を取得した場合は、常に再利用可能パーツにより正確な部門に切り替えられ、コンボ・ボックスで部門を選択した場合は、即座に値がフォームに反映されます。 
[ |../../index.htm#lansa/l4wdev06_0925.htm]

  • No labels