特定のメンバーおよびメンバー・フィールドのアウトラインをクエリーし、メンバーのハンドルの配列を戻します。戻されたメンバーのハンドルは、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()の呼出しを含んでいる例については、拡張メンバーのクエリー・コードの例を参照してください。
関連トピック