8.27.3 メソッドの結果
メソッドでは、*OUTPUTマップのいずれか1つを*RESULTとして定義できます。このようにすれば、式の中で、式の要素を生成する関数呼び出しとしてメソッドを使用できます。
例えば、以下のようになります。
Mthroutine Name(MakeMessage)
Define_Map For(*RESULT) Class(#STD_TEXT) Name(#OutTextOne)
Define_Map For(*INPUT) Class(#STD_TEXT) Name(#InTextOne)
Define_Map For(*INPUT) Class(#STD_TEXT) Name(#InTextTwo)
#OutTextOne := #InTextOne.Value + " " + #InTextTwo.Value
Endroutine
Evtroutine Handling(#PHBN_2.Click)
Begincheck
Datecheck Field(#STD_DATE) In_Format(*DDMMYY)
Endcheck Msgtxt(#COM_OWNER.MakeMessage( "#Phbn_2.Click", "Bad Date" ))
Endroutine
IFステートメントでは、ブール値の結果を返すメソッドまたは組み込みファンクションを使用できます。考え方としては、定義済みの条件を使用する場合と同じですが(DEF_CONDコマンドを参照)、この場合はメソッドを呼び出すので、条件の性質に関する制限がありません。
Mthroutine Name(Set_availability)
#Button1.Enabled := #COM_OWNER.Allow_Access
#SURNAME.readonly := *Not #COM_OWNER.Allow_Access
Endroutine
Mthroutine Name(Allow_Access)
Define_Map For(*RESULT) Class(#Prim_boln) Name(#RESULT)
#RESULT := True
If (#GIVENAME.Contains( 'ABC' ))
#RESULT := False
Endif
Endroutine
参照