EssOtlVaryingAssociateAttributeDimension

基本次元を属性次元と関連付け、可変属性を持つ基本次元として定義します。メンバー属性の関連付けは、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に含まれる独立タイプの配列へのポインタ。

次の独立したタイプをサポートします:

  • ESS_ASSOCIATE_TYPE_DISCRETE

  • ESS_ASSOCIATE_TYPE_CONTINUOUS

戻り値

成功の場合、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);
}
      

関連トピック