8.26 バリアントの処理

LANSA

8.26 バリアントの処理


関数ライブラリは、MthRoutineコマンドで定義された一連のルーチンが含まれるコンポーネントです(「関数ライブラリ」を参照してください)。関数ライブラリのルーチンは、式の中で使用できます。*VARIANTタイプのオブジェクトを処理するには、バリアント関数ライブラリ#PRIM_LIBVを使用する必要があります(文字列、数字、日付、および時刻の場合、関数ライブラリよりも組み込みファンクションを使用した方が簡単です)。

バリアントには、どんなタイプのデータでも格納できます(文字列、整数、小数、ブール値、コンポーネント)。バリアント関数を使用すれば、変数に格納されている値の種類を確認し、その値を変換後の形式(数字、文字列、ブール値など)で取得できます。

バリアントを使用すれば、値のタイプにかかわらず、値を汎用的に処理することが可能になります。例えば、コンパイラは、アプリケーションの実行前にグリッドのセルの値を認識できませんが、グリッドのEditorChangedイベントとItemChangedAcceptイベントのValueパラメータは、グリッドの値をバリアントとして返すので、値に宣言されているタイプに関するコンパイラ・エラーは発生しません。もちろん、この場合は、グリッドの値のタイプを識別できるようにプログラムを記述することが必要です。

ツリー・ビューとリスト・ビューのEditorChangedイベントとItemChangedAcceptイベントも、Valueパラメータをバリアントとして返します。さらに、多くのActiveXコントロールも、バリアントとして値を返したり、受け入れたりします。ユーザー独自の動的プログラムの中でバリアントを使用して、値のタイプに関係なく値を汎用的に処理することも可能です。例えば、以下のようになります。

Define_Com Class(*VARIANT) Name(#lclVariant)
 

*VARIANTクラスを使用するのが望ましいですが、基本バリアント・コンポーネントである#PRIM_VARのプロパティやメソッドを使用することも可能です。

#PRIM_LIBVは、以下の関数をサポートしています。

VarAsBoolean

VarIsNull

VarAsDecimal

VarIsNullReference

VarAsInteger

VarIsNumber

VarAsReference

VarIsReference

VarAsString

VarIsString

VarIsBoolean

VarType

VarIsEmpty

 

参照

関数ライブラリ

RDMLXコマンドとRDMLX機能