Associates an attribute member with a standard or base member.
Syntax
Parameter | Data Type | Description |
---|---|---|
hOutline; | ESS_HOUTLINE_T | Handle to the outline |
hStandardMember; | ESS_HMEMBER_T | Handle to the standard or base member |
hAttributeMember; | ESS_HMEMBER_T | Handle to the attribute member |
Notes
Before you associate an attribute member with a standard or base member using this function, associate the dimension of the attribute member with the dimension of the standard or base member using EssOtlAssociateAttributeDimension().
You cannot associate an attribute member with a base dimension.
Only a zero-level attribute member can associate with a standard or base member.
You cannot associate members of a given attribute dimension with base members that are at different levels from each other.
You cannot associate more than one member of an attribute dimension with a base member.
You can associate members of more than one attribute dimension with a base member.
Example
void ESS_OtlAssociateAttributeMember() { ESS_STS_T sts = ESS_STS_NOERR; ESS_HOUTLINE_T hOutline; ESS_HMEMBER_T hBaseMbr; ESS_HMEMBER_T hAttrMbr; ESS_OBJDEF_T Object; ESS_APPNAME_T szAppName; ESS_DBNAME_T szDbName; ESS_OBJNAME_T szFileName; ESS_PROCSTATE_T pState; memset(&Object, '\0', sizeof(Object)); Object.hCtx = hCtx; Object.ObjType = ESS_OBJTYPE_OUTLINE; strcpy(szAppName, "Sample"); strcpy(szDbName, "Basic"); strcpy(szFileName, "Basic"); Object.AppName = szAppName; Object.DbName = szDbName; Object.FileName = szFileName; sts = EssOtlOpenOutline(hCtx, &Object, ESS_TRUE, ESS_TRUE, &hOutline); printf("EssOtlOpenOutline() sts: %ld\n",sts); sts = EssOtlFindMember(hOutline, "Product", &hBaseMbr); printf("EssOtlFindMember() sts: %ld\n",sts); sts = EssOtlFindMember(hOutline, "Color", &hAttrMbr); printf("EssOtlFindMember() sts: %ld\n",sts); sts = EssOtlAssociateAttributeMember(hOutline,hBaseMbr,hAttrMbr); printf("EssOtlAssociateAttributeMember() sts: %ld\n",sts); sts = EssOtlWriteOutline(hOutline, &Object); printf("EssOtlWriteOutline() sts: %ld\n",sts); sts = EssOtlRestructure(hCtx, ESS_DOR_ALLDATA); printf("EssOtlRestructure() sts: %ld\n",sts); if (!sts) { sts = EssGetProcessState (hCtx, &pState); while (!sts || (pState.State != ESS_STATE_DONE)) sts = EssGetProcessState (hCtx, &pState); } sts = EssOtlCloseOutline(hOutline); printf("EssOtlCloseOutline() sts: %ld\n",sts); }
See Also