Page History
...
- 再利用可能パーツを編集し、コンボ・ボックスのフォーカスが変更されたときにuDepartmentChangedイベントを送信するようにします。イベントを以下のように定義します。
define_
evt uDepartmentChanged help('このイベントは部門選択が変更されると起動しますevt uDepartmentChanged help('This event is signaled when the department selection is changed')
- イベントを以下のように通知します。
EVTROUTINE HANDLINGEVTROUTINE HANDLING(#COMBOBOX.ItemGotFocus)
Signal uDepartmentChanged
Signal uDepartmentChanged
ENDROUTINE
uCurrDepartmentプロパティの実装
再利用可能パーツを編集し、以下のことを行うuCurrDepartmentという名前のプロパティを定義します。
...
- このためには、以下のようにプロパティを定義する必要があります。
define_
pty namepty name(uCurrDepartment)
getget(*
auto #deptment) setauto #deptment) set(SetDepartment)
- それからSetDepartmentプロパティのプロパティ・ルーチンを以下のように追加します。
PTYROUTINE SetDepartment
define_map forPTYROUTINE SetDepartment
class
define_map for(*input)class(#deptment)
namename(#sdeptment)
selectlist #combobox
continue if('#deptment *ne #sdeptmentselectlist #combobox
continue if('#deptment *ne #sdeptment.Value')
set #ComboBox.CurrentItem Focus
set #ComboBox.CurrentItem Focus(True)returnendselect
return
endselect
ENDROUTINE - 再利用可能パーツの新しいバージョンをコンパイルします。
...
- テスト・フォームを編集し、以下の1行を追加して社員の詳細が取得されるときに再利用可能パーツに新しい部門の詳細を表示するよう通知する必要があります。
Set #II_RVP29A uCurrDepartmentSet #II_RVP29A uCurrDepartment(#deptment)
さらに、監視してビジュアル・コンポーネントを変更する必要があります。uDepartmentSelectedイベントを送信するときは、常に以下のルーチンを使用して#DEPTMENTフィールドの値を変更する必要があります。
EVTROUTINE HANDLINGEVTROUTINE HANDLING(#II_RVP29A.uDepartmentChanged)
Change #deptment #IIChange #deptment #II_RVP29A.uCurrDepartment
ENDROUTINE - 最後にフォームのフィールド #DEPTMENT を Read-Only(True) にし、インターフェースから変更できないようにします。実際には、#DEPTMENTフィールドをフォームに置くことはあまりありませんが、このエクササイズのために内容を見ることができるようにしました。
- テスト・フォームを再コンパイルします。
- フォームの新しいバージョンをテストします。社員の詳細を取得した場合は、常に再利用可能パーツにより正確な部門に切り替えられ、コンボ・ボックスで部門を選択した場合は、即座に値がフォームに反映されます。