基本次元を属性次元と関連付け、可変属性を持つ基本次元として定義します。メンバー属性の関連付けは、pucIndependentTypesで指定されたタイプの、指定した独立次元のレベル-0メンバーに応じて異なります。連続独立次元は最後に指定する必要があります。
構文
ESS_FUNC_M EssOtlVaryingAssociateAttributeDimension (
hOutline, hBaseDim, hAttrDim, countOfIndepDims, *pIndepDims, *pucIndependentTypes
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hOutline |
ESS_HOUTLINE_T |
アウトラインのコンテキスト・ハンドル |
hBaseDim |
ESS_HMEMBER_T |
基本次元ハンドル |
hAttrDim |
ESS_HMEMBER_T |
属性次元ハンドル |
countOfIndepDims |
ESS_INT32_T |
可変属性を制御する独立次元の数 |
*pIndepDims |
ESS_HMEMBER_T |
独立次元についてのメンバー・ハンドルの配列へのポインタ |
*pucIndependentTypes |
ESS_UCHAR_T |
*pIndepDimsに含まれる独立タイプの配列へのポインタ。 次の独立したタイプをサポートします:
|
戻り値
成功の場合、0が戻されます。
例
void TestEssOtlVaryingAssociateAttributeDimenion()
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_HOUTLINE_T hOutline = ESS_NULL;
ESS_OBJDEF_T Object;
ESS_HMEMBER_T hBaseDim = ESS_NULL;
ESS_HMEMBER_T IndDimsArray[2];
ESS_HMEMBER_T hAttrDimArray[9];
ESS_INT32_T countOfIndDims;
ESS_UCHAR_T pucIndependentTypes[2];
int i;
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);
SetupTest(hOutline);
/* Assign independent dimension array*/
sts = EssOtlFindMember(hOutline, "Time Periods", &IndDimsArray[0]);
printf("EssOtlFindMember sts: %d\n", sts);
sts = EssOtlFindMember(hOutline, "Years", &IndDimsArray[1]);
printf("EssOtlFindMember sts: %d\n", sts);
/* Get handles to base and attribute dimensions for test.*/
sts = EssOtlFindMember(hOutline, "Entities", &hBaseDim);
printf("\nEssOtlFindMember sts: %d\n", sts);
sts = EssOtlFindMember(hOutline, "Type", &hAttrDimArray[0]);
printf("EssOtlFindMember sts: %d\n", sts);
sts = EssOtlFindMember(hOutline, "FT/PT", &hAttrDimArray[1]);
printf("EssOtlFindMember sts: %d\n", sts);
/* Disassociate current association before tests.*/
for (i = 0; i < 2; i++)
{
sts = EssOtlDisassociateAttributeDimension(hOutline, hBaseDim, hAttrDimArray[i]);
printf("EssOtlDisassociateAttributeDimension sts: %d\n", sts);
}
/* Associate the dimension Entities to Type*/
printf("\nValid case: Associate the dimension Entities and Type:\n");
countOfIndDims = 2;
pucIndependentTypes[0] = ESS_ASSOCIATE_TYPE_DISCRETE;
pucIndependentTypes[1] = ESS_ASSOCIATE_TYPE_CONTINUOUS;
sts = EssOtlVaryingAssociateAttributeDimension(hOutline, hBaseDim, hAttrDimArray[0], countOfIndDims, IndDimsArray, pucIndependentTypes);
printf("EssOtlVaryingAssociateAttributeDimension sts: %d\n", sts);
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);
}
関連トピック