アドレスフォームの表示ボタンのClickイベントでAddressFormへの参照が明示的に作成されます。参照は、AddressFormのインスタンスを作成します。
SET_REF com(#AddressForm) to(*create_as #refex2)
このステートメントの後、基本的には動的な参照がない通常のDEFINE_COMを単純に使用したの場合と同じ状態になります。
AddressFormのインスタンスが存在するので、そのメソッドを実行できます。AddressFormに従業員番号と名字を渡すu_GetDetailsを呼び出します。
INVOKE method(#AddressForm.u_GetDetails) U_WITHEMPNO(#EMPNO) U_WITHSURNAME(#SURNAME)
AddressFormのこのメソッドは、従業員番号と名字を受け取り、住所の情報を取得し、フォームを表示します。
MTHROUTINE name(u_GetDetails)
DEFINE_MAP for(*INPUT) class(#EMPNO) name(#u_WithEMPNO)
DEFINE_MAP for(*INPUT) class(#SURNAME) name(#u_WithSURNAME)
CHANGE field(#EMPNO) to('#U_WITHEMPNO.VALUE')
CHANGE field(#SURNAME) to('#U_WITHSURNAME.VALUE')
IF cond('#EMPNO *NE *BLANKS')
FETCH fields(#ADDRESS1 #ADDRESS2 #ADDRESS3) from_file(PSLMST) with_key(#EMPNO)
ENDIF
INVOKE method(#COM_OWNER.ShowForm)
ENDROUTINE