11.4.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
 

Ý 11.4 式の機能強化