9.1 組み込みファンクションについて

組み込みファンクションは、LANSAで使用可能なデータの汎用クラスごとに存在します。例えば、文字列、数値、日付、時間、時刻等の組み込みファンクションがあります。全ての組み込みファンクションは1つの結果を返し、コマンドラインにて結果のパラメータを指定する必要はありません。組み込みファンクションの結果はそれ自体、コマンドで使用される値であると想定されます。

以下の例について考えます。

#com_owner.caption := 'Employee salary is ' + #salary.asstring

 

上記の例では、文字列と数値フィールドを連結するために+演算子が使用されています。組み込みファンクションを使用しない場合、#salaryから英数字フィールドに値を移動してから、これを使用してキャプションを作成する必要があります。

asstring組み込みファンクションは、#salaryの値を文字列に変換し、それを結果として返します。返された文字列は、LANSAで他の文字列と同様に使用できます。

組み込みファンクションを使用できるのは、特定のフィールドを参照している場合だけではありません。定義上、組み込みファンクションはデータのクラスに属します。以下のコード例について考えます。

Mthroutine Name(Set_Caption)

 

#com_owner.caption := 'Employee salary is ' + #Com_owner.Get_Salary(#Empno).AsString

 

Endroutine

 

 

 Mthroutine Name(Get_Salary)

Define_Map For(*Input) Class(#Empno) Name(#iEmployee)

Define_Map For(*Result) Class(#Salary) Name(#oSalary)

 

Fetch Fields(#Salary) from_file(Pslmst) with_key(#iEmployee)

 

#oSalary := #Salary

 

Endroutine

 

この例では、Set_Captionメソッドが最初の例とほぼ同じ処理を実行します。主な違いは、キャプションを作成するためにsalaryフィールドが使用されず、Get_Salaryメソッドの結果が使用されることです。Define_Map #oSalaryはクラス#salaryに属しているため、定義上、これは数値です。すなわち、どのNumeric型組み込みファンクションでも値を操作できます。

同様に、フォーム幅などコンポーネントの数値プロパティを参照する場合にも、Numeric型組み込みファンクションを使用できます。

組み込みファンクションがSQL NULL値に対して呼び出された場合、その組み込みファンクションが明示的にSQL NULLを処理しない限り、SQL NULLが生成されます。例については、「9.12.6 IsSqlNull 」を参照してください。

Ý 9. 組み込みファンクション