指定した属性メンバーの、独立次元を戻します(ある場合)。
構文
ESS_FUNC_M EssOtlVaryingGetAttributeIndepDims (
hOutline, hAttrMember, *pCountOfIndepDims, **ppIndepDims, **ppucIndependentTypes
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hOutline |
ESS_HOUTLINE_T |
アウトラインのコンテキスト・ハンドル |
hAttrMember |
ESS_HMEMBER_T |
属性メンバーのハンドル |
*pCountOfIndepDims |
ESS_INT32_T |
可変属性を制御する独立次元の数へのポインタ |
**ppIndepDims |
ESS_HMEMBER_T |
独立次元についてのメンバー・ハンドルの配列へのポインタ |
**ppucIndependentTypes |
ESS_UCHAR_T |
*pIndepDimsに含まれる独立次元の配列へのポインタ |
備考
独立次元は、属性の関連付けが変化する可能性がある状況を識別する値を持つ次元です。独立次元は属性次元が基本次元と関連付けられる場合に選択されます。VaryingGetAttributeIndepdimsは、指定した属性の次元と関連付けられた独立次元のリストを戻します。
戻り値
成功の場合、0が戻されます。
例
void TestEssOtlVaryingGetAttributeIndepDims()
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_HOUTLINE_T hOutline = ESS_NULL;
ESS_OBJDEF_T Object;
ESS_STR_T attrMbr, attrDim, baseMbr, baseDim;
ESS_USHORT_T i;
ESS_HMEMBER_T hAttrMbr;
ESS_HMEMBER_T hAttrDim;
ESS_HMEMBER_T hBaseMbr;
ESS_HMEMBER_T hBaseDim;
ESS_INT32_T pCountOfIndepDims;
ESS_HMEMBER_T *ppIndepDims;
ESS_PMBRINFO_T pMemberInfo;
ESS_UCHAR_T *pucIndependentTypes;
memset(&Object, '\0', sizeof(Object));
Object.hCtx = hCtx;
Object.ObjType = ESS_OBJTYPE_OUTLINE;
Object.AppName = szAppName;
Object.DbName = szDbName;
Object.FileName = szDbName;
printf("\n");
sts = EssOtlOpenOutline(hCtx, &Object, ESS_TRUE, ESS_TRUE, &hOutline);
printf("EssOtlOpenOutline sts: %ld\n",sts);
printf("\nGet handles of members for tests:\n");
attrMbr = "Contractor";
sts = EssOtlFindMember(hOutline, attrMbr, &hAttrMbr);
printf("EssOtlFindMember sts: %d\n", sts);
attrDim = "Type";
sts = EssOtlFindMember(hOutline, attrDim, &hAttrDim);
printf("EssOtlFindMember sts: %d\n", sts);
baseMbr = "Doe,Jane";
sts = EssOtlFindMember(hOutline, baseMbr, &hBaseMbr);
printf("EssOtlFindMember sts: %d\n", sts);
baseDim = "Entities";
sts = EssOtlFindMember(hOutline, baseDim, &hBaseDim);
printf("EssOtlFindMember sts: %d\n", sts);
/* Valid case with a valid attribute member handle. */
printf("\nValid case with a valid attribute member handle:\n");
sts = EssOtlVaryingGetAttributeIndepDims(hOutline, hAttrMbr, &pCountOfIndepDims, &ppIndepDims, &pucIndependentTypes);
printf("EssOtlVaryingGetAttributeIndepDims sts: %d\n", sts);
if(pCountOfIndepDims)
{
printf("Independent dimension(s) for attribute member %s:", attrMbr);
for (i = 0; i < pCountOfIndepDims; i++)
{
sts = EssOtlGetMemberInfo(hOutline, ppIndepDims[i], &pMemberInfo);
printf("\n\t%s", pMemberInfo->szMember);
switch(pucIndependentTypes[i])
{
case ESS_ASSOCIATE_TYPE_CONTINUOUS:
printf(" - (Continuous)");
break;
case ESS_ASSOCIATE_TYPE_DISCRETE:
printf(" - (Discrete)");
break;
}
}
printf("\n");
}
else
printf("\tAttribute member %s has no independent dimension.\n", attrMbr);
sts = EssUnlockObject(hCtx, ESS_OBJTYPE_OUTLINE, Object.AppName, Object.DbName, Object.FileName);
printf("\nEssUnlockObject sts: %d\n", sts);
sts = EssOtlCloseOutline(hOutline);
printf("EssOtlCloseOutline sts: %d\n",sts);
}
関連トピック