Retrieves the name and member uniqueness setting for a specific generation within a dimension.
Syntax
ESS_FUNC_M EssOtlGetGenName (hOutline, pszDimension, usGen, ppszName, pbNameUnique);
Parameter | Data Type | Description |
---|---|---|
hOutline | ESS_HOUTLINE_T | Outline context handle. |
pszDimension | ESS_STR_T | Name of dimension that contains the generation. |
usGen | ESS_USHORT_T | Number of generation for which to get a name. The dimension is generation 1. |
ppszName | ESS_PSTR_T | Buffer for return of generation name, allocated by the API. |
pbNameUnique | ESS_PBOOL_T | Member name uniqueness setting. |
Notes
The generation name must be unique across the entire member name space. It cannot duplicate any other generation, level, member name, or alias. Attempting to add a duplicate generation name generates an error.
Generation names are not automatically assigned. For this function to return the name, a name must have been assigned. The name can be assigned with EssOtlSetGenName
Call EssFree() to free the returned buffer.
Return Value
Returns 0 if successful; otherwise, returns an error code.
Example
void ESS_GetGenNameEx() { ESS_STS_T sts = 0; ESS_HOUTLINE_T hOutline; ESS_OBJDEF_T Object; ESS_APPNAME_T szAppName; ESS_DBNAME_T szDbName; ESS_OBJNAME_T szFileName; ESS_STR_T Dimension; ESS_USHORT_T GenNum; ESS_STR_T GenName; ESS_BOOL_T bUnique= ESS_FALSE; memset(&Object, '\0', sizeof(Object)); Object.hCtx = hCtx; Object.ObjType = ESS_OBJTYPE_OUTLINE; strcpy(szAppName, "Demo"); strcpy(szDbName, "Test"); strcpy(szFileName, "Test"); Object.AppName = szAppName; Object.DbName = szDbName; Object.FileName = szFileName; sts = EssOtlOpenOutline(hCtx, &Object, ESS_TRUE, ESS_TRUE, &hOutline); printf("EssOtlOpenOutline sts: %ld\n",sts); /*************** Set and Get GenName **************/ Dimension = "Year"; GenNum = 1; GenName = "Gen 1 Year"; //SetGenNameEx() so that Gen 1 members of Year cannot be non-unique if (!sts) { sts = EssOtlSetGenNameEx(hOutline, Dimension, GenNum, GenName, ESS_TRUE); } // GetGenNameEx() to see if the gen is able to be non-unique if (!sts) { sts = EssOtlGetGenNameEx(hOutline, Dimension, GenNum, &GenName, &bUnique); printf("Generation 1 members of Year have bUnique value of %ld\n", bUnique); printf("EssOtlGetGenNameEx sts: %ld\n",sts); } if (!sts && GenName) { printf("Gen Name: %s\n",GenName); EssFree(hInst, GenName); } }
See Also