フォーマット文字列の操作
フォーマット文字列を使用すると、Essbaseデータベース・メンバーの値(セル・コンテンツ)を数値型のメジャーでフォーマットして、問合せの実行時に、事前定義されたテキスト、日付またはその他の型の値として表示できます。結果として表示される値はセルのフォーマットされた値(MDXではFORMATTED_VALUEプロパティ)です。
基礎となる実際の値は数値であり、この値は関連付けられたフォーマット済の値には影響されません。フォーマット文字列を使用すると、実際の数値のかわりに、よりわかりやすい値を表示できます。たとえば、テキスト・ベースのフォーマットされた値を使用すると、データ・セルをHigh、MediumおよびLowとして表示できます。
テキスト型と日付型の値は、組込みのテキスト・メジャーと日付メジャーの型を使用すると、追加でサポートされます。フォーマット文字列を使用すると、複数のディメンション内のメンバーにフォーマット文字列を適用できるという点で実装の柔軟性が高まりますが、テキスト・メジャーと日付メジャーを使用する場合、単一のメジャーのディメンションにはいずれか一方のみを適用できます。フォーマット文字列は数値ディメンションに適用できます。ディメンションをテキストまたは日付として入力する必要はありません。
フォーマット文字列は、集約ストレージとブロック・ストレージのいずれかのデータベースに適用できます。
フォーマット文字列は、次のメンバーに対して定義できます。
-
Measuresディメンションのすべてのメンバー
-
他のディメンションの明示的な式文字列に関連付けられたメンバー
トピック:
フォーマット文字列の実装
フォーマット文字列は、集約ストレージ・データベースとブロック・ストレージ・データベースでサポートされます。フォーマット文字列はデータベース・レベルで実装します。
フォーマット文字列を有効にして使用するには、次のワークフローを使用します。
-
アウトライン・プロパティで、型付きメジャーを有効にします。
-
Accountsディメンションで、メンバーをフォーマットするメジャーを作成し、そのメンバー・プロパティで「フォーマット文字列の関連付け」フィールドを編集して、MDXフォーマット・ディレクティブを作成します。MDXフォーマット・ディレクティブを作成する構文は、MDXフォーマット・ディレクティブを参照してください。
MDXフォーマット・ディレクティブ
フォーマット文字列は、次の構文で定義されます。
format_string_expression = MdxFormat (string_value_expression)
MDX仕様(MDX文法ルールを参照)で説明されているように、string_value_expressionは有効なMDX文字列値式です。
ほとんどのMDX式は、フォーマット文字列の指定に使用できます。ただし、フォーマット文字列には、フォーマット中の現在のセル値以外のデータ・セルの値への参照を含めることができません。現在のセル値は、MDXのCellValue関数を使用して参照できます。
Essbaseでは、無効なフォーマット文字列を含むメンバーは、フォーマット文字列が定義されていない場合と同様に処理されます。アウトラインは無効なフォーマット文字列とともに保存できます。無効なフォーマット文字列を持つメンバーで問合せが構成されている場合は、Essbaseで警告が生成されます。
メンバーがフォーマット文字列に関連付けられていない場合は、デフォルトのフォーマット・ルールが適用されます。デフォルトのフォーマット・ルールでは、メジャーが数値型か、テキスト型か、日付型かに基づいて、セルがフォーマットされます。数値メジャーの場合、デフォルトのフォーマットされた値は、その数値のテキスト・バージョンです。テキスト・メジャーの場合、デフォルトのフォーマットされた値は、関連付けられたテキスト・リスト・オブジェクトに基づいたテキスト値です。日付値の場合、デフォルトのフォーマットは、アウトライン・プロパティに定義されている日付フォーマット文字列に従ってフォーマットされた日付文字列です。
フォーマット文字列をサポートする関数
次のMDX関数は、メジャーにフォーマット文字列を適用するときに便利です。フォーマット文字列は、MDX式として、集約ストレージ・データベースとブロック・ストレージ・データベースの両方に適用できます。
-
EnumTextは、内部数値に関連付けられたテキスト・リスト・ラベルを戻します。
-
EnumValueは、テキスト・リスト・ラベルの内部数値を戻します。
-
CellValueは、現在のセルの内部数値を戻します。
-
NumToStrは、値を10進文字列に変換します。
@ENUMVALUE計算関数は、テキスト・メジャーまたはフォーマット文字列を含むブロック・ストレージ・データベースの計算スクリプトを作成するときに便利です。この関数は、内部数値に関連付けられたテキスト・リスト・ラベルを戻します。
MaxLのalter session set dml_output文には、set formatted_value on | off句があります。デフォルトでは、問合せにはフォーマット済の値が表示されますが、この文を使用するとフォーマット済の値の表示をオフにできます。