Page History
...
オーナー・フォームにフォームを置く場合は、実際にはフォームのインスタンスが置かれます(インスタンスの詳細は、「2.2 コンポーネントの基本」を参照してください)。つまり、以下のようになります。
WRKEMPには、FRMDETAILの参照だけが含まれます。FRMDETAILを編集するには、エディターでFRMDETAILを開く必要があります。
FRMDETAILをスタンド・アロン・フォームとして実行できます(ただしその場合、WRKEMPとは通信できません)。他のアプリケーションの他のフォームにも挿入できます。
WRKEMP内部で使用し、イベントのコードを記述すると、FRMDETAILのプロパティを上書きできます。このインスタンスに対する変更では、FRMDETAILコンポーネントそのものは変更されません。
FRMDETAILの複数のインスタンスを同時に表示できます。同時に複数の社員の詳細を表示できるようにする場合は、このようにする必要があります。詳細は、この章の後半の「2.14.4 複数のFRMDETAILインスタンスの表示」を参照してください。
複数のフォームの操作
フォームを作成したので、両方をエディターで開き、[アウトライン]タブを使用してフォーム間を移動します。
...
EVTROUTINE HANDLING(#MDetails.Click) SET COM(#frmdetail) formowner(#com_owner) invoke #frmdetail.ShowForm set com(#frmdetail) employee(#empno)ENDROUTINE
これで現在の社員番号がWRKEMPからFRMDETAILに渡されます。
...
EVTROUTINE HANDLING(#MDetails.Click) SET COM(#frmdetail) formowner(#com_owner) invoke #frmdetail.ShowForm set com(#frmdetail) employee(#empno) invoke #frmdetail.GetInfoENDROUTINE
4d.OKPressedイベントに対応する
...
FRMDETAILでOKボタンが押されるたびにWRKEMPでGetListサブルーチンが実行されます。
「2.14.7 マルチフォーム・アプリケーション例のソース・コード」も参照してください。
メソッドについて注意すること
例が完成する前は、フォームがメソッドを呼び出せても何の意味もありません。そのため、OKボタンまたはキャンセルボタンのClickイベントにFRMDETAILのCloseFormメソッドを置くことを選択しました。
...