2.17.1.2 参照の作成

アドレスフォームの表示ボタンの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