@ENUMVALUE
Essbaseの@ENUMVALUE計算関数は、テキスト・リストのテキスト値の内部数値を返します。
構文
@ENUMVALUE ([mbrName,]enum_string)
パラメータ
- mbrName
-
オプション。すべての有効な単一メンバー名、または単一メンバーを返す関数。@ENUMVALUEを最初の引数として指定した場合、そのメンバーに関連付けられたテキスト・リストをチェックし、2番目の引数で指定した文字列の数値を返します。
- enum_string
-
mbrNameを最初の引数として指定した場合、これは、そのテキスト・リスト内で表されるテキスト文字列の1つのchar_string_literalです。
mbrNameを最初の引数として指定しない場合、これは、
text_list_name, char_string_literal
の形式の文字列です。ここで、引数は次のとおりです。-
text_list_nameは、テキスト・リスト、またはテキスト・リストに関連付けられているメンバーの名前です。
-
char_string_literalは、テキスト・リストに表されるテキスト値の1つです。
-
例
次の例は、「すべてのファイル」>「ギャラリー」>「アプリケーション」>「施設評価」のファイル・カタログからダウンロードできる施設評価キューブに基づいています。キューブには、次のマッピングを持つResponseValuesという名前のテキスト・リストが含まれています: "Perfect" = 1、"Very Nice" = 2、"Nice" = 3、"Good some of the times" = 4、"No Opinion" = 5。
例1a: メンバー式での@ENUMVALUEの使用
次の式の例の意味は次のとおりです: 現在の「Answer」が「No Opinion」の場合、「USA」の地理内のすべての「Office」に対するすべての「Answer」について、「Answer」を「Good some of the times」に変更します。
FIX (@IDESCENDANTS("USA"))
"Office" (
IF ("Answer" == @ENUMVALUE("ResponseValues", "No Opinion"))
"Answer" = @ENUMVALUE("ResponseValues", "Good some of the times");
ENDIF
);
ENDFIX
例1b: メンバー式でのテキスト・リストの数値の使用
次の式の例は、例1aの式と同じことを行いますが、この使用例はお薦めしません。@ENUMVALUEを使用してテキスト・リストから値を検索すると、エラーが発生しにくくなります。次の例では、代入文によって範囲外の応答値(ResponseValuesテキスト・リスト・オブジェクトにマップされていない値)になる場合でも、計算スクリプトによって検証が行われます。
FIX (@IDESCENDANTS("USA"))
"Office" (
IF ("Answer" == 5)
"Answer" = 4;
ENDIF
);
ENDFIX