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