特定のメンバーおよびメンバー・フィールドのアウトラインをクエリーし、メンバーのハンドルの配列を戻します。戻されたメンバーのハンドルは、EssOtlGetMemberInfo()など、他のアウトラインAPI関数で使用できます。(EssOtlGetMemberInfo()は、ESS_MEMBERINFO_TおよびESS_MBRINFO_Tに含まれる個別のフィールドを取得できます。)
構文
ESS_FUNC_M
EssOtlQueryMembersEx
(
hOutline
,
pszFieldSelection
,
pszMemberSelection
,
pMaxCount
,
ppMemberArray
,
ppqryErrorList
)
| パラメータ | データ型 | 説明 |
|---|---|---|
hOutline |
ESS_HOUTLINE_T |
Essbaseアウトライン・ハンドル。これはEssOtlOpenOutlineQuery()から戻されている必要があります。 |
pszFieldSelection |
ESS_STR_T |
各メンバーについて戻されるフィールドの集合を定義するクエリー文字列。pszFieldSelectionの構文を「注意」に示します。 |
pszMemberSelection |
ESS_STR_T |
戻されるメンバーのセットを定義するクエリー文字列。このクエリー文字列の構文は、メンバー選択の構文です。つまり、クエリー文字列は、FIX()ステートメントで使用できるものであれば、何でもかまいません。 |
pMaxCount |
ESS_PULONG_T |
入力: 戻されるメンバーのハンドルの最大数へのポインタ。 出力: 戻されるメンバーのハンドルの数へのポインタ。 |
ppMemberArray |
ESS_PPHMEMBER_T |
戻されるメンバーのハンドルの配列の先頭を指すポインタへの参照。 |
ppqryErrorList |
ESS_OTLQUERYERRORLIST_T |
クエリー内のエラー・リストに含まれる構造体を指すポインタへの参照。 |
備考
重複メンバー名を認めるアウトラインでは、この関数は、共有メンバーの完全修飾名を戻します。たとえば、Sample Basicでは、共有メンバー100-20を含んでいるクエリーは、その完全修飾名[Diet].[100-20]を戻します。
メンバー・フィールド選択の一部としてUniqueNameを使用すると、そのフィールド選択の一部としてShareOptionが自動的に含まれます。
EssOtlQueryMemberEx()は、アウトライン・ハンドルを受け取り、pszMemberSelectionで指定したメンバー・ハンドルの配列を戻します。
戻されたpphMembersのメンバー配列が不要になった場合、呼出し元はEssOtlFreeMembers()を呼び出す必要があります。
配列の各メンバー・ハンドル要素は、EssOtlOpenOutlineQuery()にリストされた呼出しでのみ使用できます。たとえば、戻されたメンバー・ハンドルは、EssOtlGetSibling()を呼び出すために使用できません。
pszFieldSelectionの構文は次のとおりです:
QueryString ==: <SelectMbrInfo (
FieldName
{,
FieldName
}, ... )
where
FieldName
is one of the following:
MemberName /* Member name */
MemberLevel /* Member level number */
MemberGeneration /* Member generation number */
Cosolidation /* Whether this member is consolidated */
TwoPass /* Whether this member undergoes a two pass operation */
Expense /* Whether this is an expense member */
CurrencyConvType /* Currency conversion type */
CurrencyMember /* Whether this is a currency member */
TimeBalance /* Time balance measure */
SkipOption /* Whether this member skips the time balance operation */
ShareOption /* Whether this is a shared member*/
StorageType /* Dimension's storage type */
DimensionCategory /* Dimension category: accounts, time, currency, etc. */
DimensionStorageCategory /* Dimension storage category: time, units, scenario, etc. */
Comment /* Member comment */
ChildrenCount /* Number of children */
MemberNumber /* Member number */
DimensionName /* Dimension name */
DimensionNumber /* Dimension number */
MemberAliasName /* Alias for this member */
ParentMemberName /* Parent's name */
ChildMemberName /* Child's name */
PreviousMemberName /* Left sibling's name */
NextMemberName /* Right sibling's name */
CurrencyConversionDatabase /* Whether this database has currency conversion */
MemberStatus /* Member status */
UDAList /* List of UDAs attached to this member */
MemberFormula /* Formula for this member */
MemberValidity /* Whether this member is valid */
Attributes /* All attribute fields. If the member is not attributed, then attribute name is set to NULL */
UniqueName /* If the member is duplicate, its fully qualified, unique name. */
注: | 個別のフィールド名には、先頭の"<"文字はありません。 |
この関数をEssOtlGetMemberField()とともに使用する場合は、この関数のpszFieldSelection文字列に、EssOtlGetMemberField()のMbrFieldID定数を使用する場合に指定するのと同じフィールドを含めます。このようにしないと、EssOtlGetMemberField()はエラーOTLAPI_ERR_MBRINVALIDを戻します。
戻り値
関数が正常終了した場合、戻り値は0になります。
例
次のコード・スニペットは、Marketの子またはProductの子である各メンバーの名前、集計および式を戻します。戻されたとき、MaxCountは、戻されたメンバーの数を含んでいます。また、phMemberArrayは、戻されたメンバーのセットのためのハンドルの配列を含んでいます。さらなるアウトラインAPIの呼出しは、phMemberArrayに戻されたメンバー・ハンドルの配列を使用した、メンバーの問合せを可能にします。
member_fields = "<SelectMbrInfo ( MemberName, Consolidation, MemberFormula ) ";
member_selection = "@ichild(Product), @ichild(Market)";
MaxCount = -1;
phMemberArray = ESS_NULL;
pqryErrorList = ESS_NULL;
sts = EssOtlQueryMembersEx(hOutline,
member_fields,
member_selection,
&MaxCount,
&phMemberArray,
&pqryErrorList);
if (sts != 0) goto error_exit;
EssOtlQueryMembersEx()、EssOtlGetMemberField()およびESS_OTLQUERYERRORLIST_Tを使用し、EssOtlFreeMembers()およびEssFree()の呼出しを含んでいる例については、拡張メンバーのクエリー・コードの例を参照してください。
関連トピック