アウトラインに次元を追加し、メンバーの属性を設定します。また、この呼出しは、アウトラインが再構成されるときに、データを関連付ける新しい次元メンバーを指定します。
構文
ESS_FUNC_M EssOtlAddDimension ( hOutline, pMemberInfo, hPrevSibling, pszDataMbr, phMember );
パラメータ | データ型 | 説明 |
---|---|---|
hOutline; |
ESS_HOUTLINE_T |
アウトラインのコンテキスト・ハンドル。 |
pMemberInfo; |
ESS_MBRINFO_T |
メンバーとその属性を定義しているメンバー情報構造体。 |
hPrevSibling |
ESS_HMEMBER_T |
前の兄弟のハンドル。このフィールドがESS_NULLである場合、次元は、アウトラインの最初の次元になります。それ以外の場合、次元はhPrevSiblingで指定された次元の後に配置されます。 |
pszDataMbr; |
ESS_STR_T |
アウトラインが再構成されるときにデータ値を受領する、新規次元のメンバーのメンバー名。このフィールドがESS_NULLである場合、次元メンバー自身が使用されます。 |
phMember |
ESS_PHMEMBER_T |
APIから戻された新規メンバーのハンドル。 |
備考
この関数を呼び出す前に、ESS_MBRINFO_T構造体を作成し、値を入れておく必要があります。
属性次元を追加するには、この関数を呼び出す必要があります。
属性次元でない次元を追加するには、この関数またはEssOtlAddMember()を呼び出します。
EssOtlAddDimension()によって、追加された次元メンバーを選択し、既存の次元と関連するデータ値にそれを割り当てることができます。
EssOtlAddMember()を使用する場合は、追加された次元の上位メンバー(次元)が使用されます。
pszDataMbrフィールドを有効にするには、fKeepTransフラグをESS_TRUEに設定したEssOtlOpenOutline()を使用して、アウトラインを開いておく必要があります。
pszDataMbrフィールドで参照されたメンバーは、次元が作成された後、EssOtlAddMember()を使用して、新しい次元に追加されます。再構成のときに参照されたメンバーが存在しない場合、次元メンバーがそのかわりに使用されます。
属性次元に対して、ESS_MBRINFO_Tのフィールドを次のように設定する必要があります:
フィールド |
設定 |
---|---|
usConsolidation |
ESS_UCALC_NOOP |
fTwoPass |
ESS_FALSE |
fExpense |
ESS_FALSE |
usConversion |
ESS_CONV_NONE |
usTimeBalance |
ESS_TIMEBAL_NONE |
usSkip |
ESS_SKIP_NONE |
usShare |
ESS_SHARE_DYNCALCNOSTORE |
usStorage |
ESS_DIMTYPE_SPARSE |
usCategory |
ESS_CAT_ATTRIBUTE |
usStorageCategory |
ESS_STORECAT_ATTRIBUTE |
Attribute.usDataType |
次の属性メンバー・データ型のいずれかになります:
|
属性次元に基本次元を関連付ける必要があります。
属性次元は、基本次元および標準次元の後ろに置く必要があります。
戻り値
正常終了の場合は0が戻されます。それ以外の場合は、次のいずれかの値が戻されます:
OTLAPI_BAD_CONSOL
OTLAPI_BAD_MBRNAME
OOTLAPI_ERR_ADDNAMEUSEDTLAPI_ERR_ADDDELETEDIMDYNAMICCALC
OTLAPI_ERR_BADSHARE
OTLAPI_ERR_BADSKIP
OTLAPI_ERR_BADSTORAGE
OTLAPI_ERR_BADSTORAGECATEGORY
OTLAPI_ERR_BADTIMEBAL
OTLAPI_ERR_CURTOOMANYDIMS
OTLAPI_ERR_ILLEGALBOOLEAN
OTLAPI_ERR_ILLEGALCURRENCY
OTLAPI_ERR_ILLEGALDATE
OTLAPI_ERR_ILLEGALNUMERIC
OTLAPI_ERR_ILLEGALTAG
OTLAPI_ERR_LEAFLABEL
OTLAPI_ERR_NONATTRDIMFOLLOWED
OTLAPI_ERR_NOSHAREPROTO
OTLAPI_ERR_NOTIMEDIM
例
#include <essapi.h> #include <essotl.h> ESS_STS_T sts = 0; ESS_OUTLINEINFO_T NewInfo; ESS_HOUTLINE_T hOutline; ESS_MBRINFO_T MbrInfo; ESS_HMEMBER_T hDimMeasures; memset (&NewInfo,'\0', sizeof(NewInfo)); sts = EssOtlNewOutline(hCtx, &NewInfo, &hOutline); if (!sts) { memset(&MbrInfo, '\0', sizeof(MbrInfo)); strcpy(MbrInfo.szMember, "Measures"); MbrInfo.usStorage = ESS_DIMTYPE_SPARSE; MbrInfo.usCategory = ESS_CAT_ACCOUNTS; sts = EssOtlAddDimension(hOutline, &MbrInfo, ESS_NULL, "Profit",&hDimMeasures); }
関連トピック