Retrieves attribute specifications for the outline.
Syntax
Parameter | Data Type | Description |
---|---|---|
hCtx; | ESS_HCTX_T | Context handle |
pAttrSpecs; | ESS_ATTRSPECS_T | Attribute specifications |
Notes
Set attribute specifications for the outline using EssOtlSetAttributeSpecifications.
Attribute specifications are used to do the following:
Generate a long name
Indicate the format of a datetime attribute
Indicate a numeric attribute's bucketing type
Provide the name of the attribute calculations dimension and the names for the values used with it
Access
This function requires no special privileges.
Example
void ESS_GetAttributeSpecifications() { ESS_STS_T sts = ESS_STS_NOERR; ESS_PATTRSPECS_T pAttrSpecs; sts = EssGetAttributeSpecifications(hCtx, &pAttrSpecs); printf("\n ---------Attribute Specifications--------\n\n"); if (sts) return(sts); switch(pAttrSpecs->usGenNameBy) { case ESS_GENNAMEBY_PREFIX: printf("\n Prefix/Suffix : Prefix"); break; case ESS_GENNAMEBY_SUFFIX: printf("\n Prefix/Suffix : Suffix"); break; default: printf("\n Prefix/Suffix : None"); break; } switch(pAttrSpecs->usUseNameOf) { case ESS_USENAMEOF_PARENT: printf("\n Use Name of : Parent"); break; case ESS_USENAMEOF_GRANDPARENTANDPARENT: printf("\n Use Name of : Grand Parent and Parent"); break; case ESS_USENAMEOF_ALLANCESTORS: printf("\n Use Name of : All Ancestors"); break; case ESS_USENAMEOF_DIMENSION: printf("\n Use Name of : Dimension"); break; case ESS_USENAMEOF_NONE: printf("\n Use Name of : None"); break; default: printf("\n Use Name of : Invalid setting"); break; } switch(pAttrSpecs->cDelimiter) { case ESS_DELIMITER_PIPE: printf("\n Delimiter : '|'"); break; case ESS_DELIMITER_UNDERSCORE: printf("\n Delimiter : '_'"); break; case ESS_DELIMITER_CARET: printf("\n Delimiter : '^'"); break; default: printf("\n Delimiter : Invalid setting"); break; } switch(pAttrSpecs->usDateFormat) { case ESS_DATEFORMAT_DDMMYYYY : printf("\n Date Format : DD-MM-YYYY"); break; case ESS_DATEFORMAT_MMDDYYYY : printf("\n Date Format : MM-DD-YYYY"); break; default: printf("\n Date Format : Invalid setting"); break; } switch(pAttrSpecs->usBucketingType) { case ESS_UPPERBOUNDINCLUSIVE : printf("\n Bucketing Type : Upper Bound inclusive"); break; case ESS_UPPERBOUNDNONINCLUSIVE : printf("\n Bucketing Type : Upper Bound non-inclusive"); break; case ESS_LOWERBOUNDINCLUSIVE : printf("\n Bucketing Type : Lower Bound inclusive"); break; case ESS_LOWERBOUNDNONINCLUSIVE : printf("\n Bucketing Type : Lower Bound non-inclusive"); break; default: printf("\n Bucketing Type : Invalid setting"); break; } printf("\n Default for TRUE : %s",pAttrSpecs->pszDefaultTrueString); printf("\n Default for FALSE : %s",pAttrSpecs->pszDefaultFalseString); printf("\n Default for Attr Calc : %s",pAttrSpecs->pszDefaultAttrCalcDimName); printf("\n Default for Sum : %s",pAttrSpecs->pszDefaultSumMbrName); printf("\n Default for Count : %s",pAttrSpecs->pszDefaultCountMbrName); printf("\n Default for Average : %s",pAttrSpecs->pszDefaultAverageMbrName); printf("\n Default for Min : %s",pAttrSpecs->pszDefaultMinMbrName); printf("\n Default for Max : %s",pAttrSpecs->pszDefaultMaxMbrName); printf("\n"); EssFreeStructure(hInst, ESS_DT_STRUCT_ATTRSPECS, 1,(ESS_PVOID_T)pAttrSpecs); }
See Also