アウトラインにメンバーを追加し、メンバーの属性を設定します。
構文
EsbOtlAddMember
(
hOutline, pMemberInfo, hParent, hPrevSibling, phMember
)
ByVal
hOutline
As Long
pMemberInfo
As ESB_MBRINFO_T
ByVal
hParent
As Long
ByVal
hPrevSibling
As Long
phMember
As Long
| パラメータ | 説明 |
|---|---|
hOutline |
アウトラインのコンテキスト・ハンドル。 |
pMemberInfo |
メンバーとその属性を定義しているメンバー情報構造体。 |
hparent |
親のハンドル。このフィールドは、hPrevSiblingフィールドがESB_NULLの場合にのみ使用されます。 |
hPrevSibling |
前の兄弟のハンドル。 |
phMember |
APIから戻された新規メンバーのハンドル。 |
備考
ESB_MBRINFO_T構造体を作成し、値を入れてから、この関数を呼び出す必要があります。
共有メンバーを作成している場合以外、メンバー名は一意である必要があります。
追加されたメンバーの位置は次のようになります:
新規メンバーは、hPrevSiblingメンバーの後に挿入されます。
hPrevSiblingフィールドがESB_NULLの場合、新規メンバーはhParentで指定した親の最初の子になります。
hParentもhPrevSiblingもESB_NULLの場合、新規メンバーはアウトラインの最初の次元になります。
共有メンバーを追加するには、次の条件に従います:
共有メンバーはゼロレベル(リーフ・ノード)メンバーである必要があります。(共有メンバーは子を持つことができません。)
実際のメンバーが、次元内にすでに存在している必要があります。
ESB_MBRINFO_T構造体のusShareフィールドをESB_SHARE_SHAREに設定します。
LABELメンバーを追加するには、次の手順に従います:
最初に、ラベル属性を設定せずにメンバーを追加します。
次に、その子を追加します。
その後、EsbOtlSetMemberInfo()を使用してラベル・メンバーのラベル・タグを設定します。(ラベル・メンバーには子が必要です。)
属性メンバーを追加するには、ESB_MBRINFO_Tの各フィールドを次のように設定します:
|
フィールド |
設定 |
|---|---|
|
usConsolidation |
ESB_UCALC_NOOP |
|
fTwoPass |
ESB_FALSE |
|
fExpense |
ESB_FALSE |
|
usConversion |
ESB_CONV_NONE |
|
usTimeBalance |
ESB_TIMEBAL_NONE |
|
usSkip |
ESB_SKIP_NONE |
|
usShare |
ESB_SHARE_DYNCALCNOSTORE |
|
usStorage |
ESB_DIMTYPE_SPARSE |
|
usCategory |
ESB_CAT_ATTRIBUTE |
|
usStorageCategory |
ESB_STORECAT_ATTRIBUTE |
|
Attribute |
属性値。属性次元またはゼロレベル(リーフ・ノード)の属性メンバーは、次のいずれかのデータ型になります:
属性次元ではなく、属性メンバーの場合: ESB_ATTRMBRDT_NONE = 空を含むそれ以外すべて。 |
ESB_ATTRMBRDT_STRING型でないゼロレベルの属性メンバーを追加すると、ESB_ATTRSPECS_T構造体のアウトラインの指定を使用して、ESB_MBRINFO_T構造体のszMemberフィールドも属性メンバーのロング名に設定されます。
属性次元のみでなく属性メンバーにもusCategoryおよびusStorageCategoryを設定する必要があります。(基本メンバーにはusCategoryおよびusStorageCategoryを設定する必要はありません。基本次元のみに対して設定する必要があります。)
ESB_MBRINFO_T構造体のszDimNameフィールドは設定しません。
ESB_ATTRMBRDT_STRING型でないゼロレベルの属性メンバーには、Attributeフィールドを設定しないでください。属性値は、属性メンバーのロング名を変換して内部で導出されます。
属性メンバーのデータ型をESB_ATTRMBRDT_AUTOに設定した場合、Essbaseは次の処理を実行します:
メンバー名がその型の値に変換できる場合、メンバーのデータ型をその次元のデータ型に設定します。
メンバー名がその次元のデータ型の値に変換できない場合、メンバーのデータ型をESB_ATTRMBRDT_NONEに設定します。
ESB_ATTRMBRDT_AUTOからESB_ATTRMBRDT_NONE以外のデータ型に変換された最初の子メンバーについては、親のロング名をショート名に変換します。
次元を追加する場合:
属性次元を追加するには、EsbOtlAddDimension()を呼び出します。EsbOtlAddMember()を呼び出さないでください。
属性次元でない次元を追加するには、EsbOtlAddDimension()またはEsbOtlAddMember()を呼び出します。
EsbOtlAddDimension()を使用すると、追加された次元の任意のメンバーを選択して、既存の次元に関連付けられているデータ値を割り当てることができます。
EsbOtlAddMember()を使用する場合、既存の次元に関連付けられているデータ値が、追加された次元の最上位メンバー(次元)に割り当てられます。
戻り値
正常終了の場合は0が戻されます。それ以外の場合は、次のいずれかの値が戻されます:
OTLAPI_BAD_CONSOL
OTLAPI_BAD_MBRNAME
OTLAPI_ERR_ADDNAMEUSED
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_NOSHAREPROTO
OTLAPI_ERR_NOTIMEDIM
例
Declare Function EsbOtlAddMember Lib "ESBOTLN"
(ByVal hOutline As Long, pMemberInfo As ESB_MBRINFO_T,
ByVal hParent As Long, ByVal hPrevSibling As Long,
phMember As Long) As Long
Sub ESB_OtlAddMember()
Dim sts As Long
Dim Object As ESB_OBJDEF_T
Dim hOutline As Long
Dim MbrInfo As ESB_MBRINFO_T
Dim hMemberProfit As Long
Dim hNewMember As Long
Object.hCtx = hCtx
Object.Type = ESB_OBJTYPE_OUTLINE
Object.AppName = "Sample"
Object.DbName = "Basic"
Object.FileName = "Basic"
sts = EsbOtlOpenOutline(hCtx, Object, ESB_YES,
ESB_YES, hOutline)
If sts = 0 Then
sts = EsbOtlFindMember(hOutline,
"Profit", hMemberProfit)
End If
If sts = 0 And hMemberProfit <> 0 Then
MbrInfo.szMember = "Inventory"
sts = EsbOtlAddMember(hOutline, MbrInfo,
ESB_NULL, hMemberProfit, hNewMember)
End If
End Sub
関連トピック