特定のメンバーおよびメンバー・フィールドのアウトラインをクエリーし、メンバーのハンドルの配列を戻します。戻されたメンバーのハンドルは、EssOtlGetMemberInfo()など、他のアウトラインAPI関数で使用できます。(EssOtlGetMemberInfo()は、ESS_MEMBERINFO_TおよびESS_MBRINFO_Tに含まれる個別のフィールドを取得できます。)
構文
ESS_FUNC_M EssOtlQueryMembersExArray ( hOutline, pszFieldSelection, queryCount, pszMemberSelectionArr, pMaxCountArr, pphMemberArr, ppqryErrorList )
パラメータ | データ型 | 説明 |
---|---|---|
hOutline |
ESS_HOUTLINE_T |
EssOtlOpenOutlineQuery()から戻されるアウトライン・ハンドル。 |
pszFieldSelection |
ESS_STR_T |
クエリーで戻されるメンバー・フィールドを選択します。配列のすべてのクエリーに同じ選択内容が使用されます。 |
queryCount |
ESS_SHORT_T |
入力配列のメンバー数。 |
pszMemberSelectionArr |
ESS_STR_T |
メンバー選択のqueryCountクエリー文字列の配列。このクエリー文字列の構文は、メンバー選択の構文です。つまり、クエリー文字列は、FIX()ステートメントで使用できるものであれば、何でもかまいません。 |
pMaxCountArr |
ESS_PULONG_T |
配列内の各クエリーが、最大いくつのメンバーを戻すかを決定するqueryCount値の配列。各値は、実際に戻された数に置き換えられます。 |
pphMemberArr |
ESS_PPHMEMBER_T |
戻されたメンバー・ハンドル配列(それぞれpMaxCountArr[i]値を含む)のqueryCount配列。 |
ppqryErrorList |
ESS_OTLQUERYERRORLIST_T |
エラーのあるメンバーのリスト。 |
備考
重複メンバー名を認めるアウトラインでは、この関数は、共有メンバーの完全修飾名を戻します。たとえば、Sample Basicでは、共有メンバー100-20を含んでいるクエリーは、その完全修飾名[Diet].[100-20]を戻します。
メンバー・フィールド選択の一部としてUniqueNameを使用すると、そのフィールド選択の一部としてShareOptionが自動的に含まれます。
EssOtlQueryMemberExArray()は、アウトライン・ハンドルを受け取り、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. */
注: | 個別のフィールド名には、先頭の"<"文字はありません。 |
戻り値
正常終了の場合は0が戻されます。
例
次のコード・スニペットは、Marketの子である各メンバーおよびProductの子である各メンバーの名前、集計および式を2つの個別のメンバー配列に戻します。このコード・スニペットは、EssOtlQueryMembersExで2つのクエリーとなる呼出しを1回の呼出しEssOtlQueryMembersExArrayにまとめます。戻されるメンバー・フィールドは、配列内のすべてのクエリーで同じになり、すべての配列のサイズはqueryCountに一致する必要があります。
戻されたとき、MaxCountArray[i]には各クエリーで戻されたメンバーの数が含まれており、phMemberArrayArray[i]には各クエリーで戻されたメンバーのセットに対するハンドル配列が含まれています。さらなるアウトラインAPIの呼出しによって、phMemberArrayArray[i]に戻されたメンバーのハンドルの配列を使用して、メンバーの問合せが可能になります。
member_fields = "<SelectMbrInfo ( MemberName, Consolidation, MemberFormula ) "; queryCount = 2; member_selectionArray[0] = "@ichild(Product)"; member_selectionArray[1] = "@ichild(Market)"; MaxCountArray[0] = -1; MaxCountArray[1] = -1; phMemberArrayArray[0] = ESS_NULL; phMemberArrayArray[1] = ESS_NULL; pqryErrorListArray[0] = ESS_NULL; pqryErrorListArray[1] = ESS_NULL; sts = EssOtlQueryMembersExArray(hOutline, member_fields, queryCount, member_selectionArray, MaxCountArray, &phMemberArrayArray, pqryErrorListArray); if (sts != 0) goto error_exit;
EssOtlQueryMembersEx()、EssOtlGetMemberField()およびESS_OTLQUERYERRORLIST_Tを使用し、EssOtlFreeMembers()およびEssFree()の呼出しを含んでいる例については、拡張メンバーのクエリー・コードの例を参照してください。
関連トピック