あるレベルの次元にあるメンバーに対して重複する名前を持つことを禁止するかどうかを設定します。
構文
ESS_FUNC_M EssOtlSetLevelNameEx ( hOutline, pszDimension, usLevel, pszName, bUniqueName );
パラメータ | データ型 | 説明 |
---|---|---|
hOutline |
ESS_HOUTLINE_T |
アウトラインのコンテキスト・ハンドル。 |
pszDimension |
ESS_STR_T |
対象のレベルを含む次元の名前。 |
usLevel |
ESS_USHORT_T |
名前を設定するレベルの番号。リーフ・メンバーはレベル0です。 |
pszName |
ESS_STR_T |
レベルに与える名前。 |
bUniqueName |
ESS_BOOL_T |
TRUEの場合は、次元pszDimensionのレベルuslevelにあるメンバーに、重複した名前を付けることができません。FALSEの場合は、重複した名前を付けることができます。 |
備考
レベル名はすべてのメンバー名で一意である必要があります。他の世代、レベル、メンバー名、または別名と重複できません。重複したレベル名を追加しようするとエラーが発生します。
この関数によって、レベルの名前と一意性を設定します。名前のみを設定する場合は、EssOtlSetLevelNameを使用してください。
一意性のみを設定し、名前は変更しない場合でも、名前を渡す必要があります。その場合は、EssOtlGetLevelNameを呼び出して、この関数への値としてusLevelを渡します。
usLevelパラメータにNULLを渡さないでください。
戻り値
正常終了の場合は0が戻されます。それ以外はエラー・コードが戻されます。
例
ESS_FUNC_M
ESS_GetLevelNameEx()
{
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 LevelNum;
ESS_STR_T LevelName;
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);
/*************** Set and Get Level Name **************/
Dimension = "Year";
LevelNum = 0;
LevelName = "Level 0 Year";
//SetLevelNameEx() so that level 0 member of Year cannot be non-unique
if (!sts)
{
sts =
EssOtlSetLevelNameEx
(hOutline, Dimension,
LevelNum, LevelName, ESS_TRUE);
}
// GetLevelNameEx() to see if the level is able to be non-unique
if (!sts)
{
sts = EssOtlGetLevelNameEx(hOutline, Dimension,
LevelNum, &LevelName, &bUnique);
printf("Level 0 members of Year have bUnique value of %ld\n", bUnique);
}
if (!sts && LevelName)
{
printf("Level Name: %s\n",LevelName);
EssFree(hInst, LevelName);
}
return (sts);
}
関連トピック