指定した世代またはレベルにある次元内ですべてのメンバー名が一意であるかどうかを判定します。
構文
ESS_FUNC_M EssOtlIsMemberNameUniqueWithinDimAtGenLevel (
hOutline, hDim, bGen, usGenLevel, *pbNameUnique
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hOutline |
ESS_HOUTLINE_T |
アウトラインのコンテキスト・ハンドル。 |
hDim |
ESS_HMEMBER_T |
入力の次元。これは、EssOtlQueryGetFirstDimension()またはEssOtlQueryGetNextDimension()によって戻されます。 |
bGen |
ESS_BOOL_T |
入力。TRUEの場合は、usGenLevelが世代番号とみなされます。FALSEの場合は、usGenLevelはレベル番号とみなされます。 |
usGenLevel |
ESS_USHORT_T |
入力された世代またはレベルの番号。 |
*pbNameUnique |
ESS_BOOL_T |
出力。クエリーされた次元に、指定した世代またはレベルで重複するメンバー名が含まれている場合にはTRUEが戻され、それ以外の場合はFALSEが戻されます。 |
備考
この関数は、メンバー名の一意性または非一意性のクエリーを行う次の3つの関数のいずれかです。
EssOtlIsMemberNameNonUniqueは、アウトライン内でメンバー名が重複しているかどうかを判定します。
EssOtlIsMemberNameUniqueWithinDimは、次元内でメンバー名がすべて一意であるかどうかを判定します。
EssOtlIsMemberNameUniqueWithinDimAtGenLevelは、指定した世代またはレベルにある次元内ですべてのメンバー名が一意であるかどうかを判定します。
この関数を呼び出す前に、EssOtlOpenOutlineQuery()を呼び出し、クエリー・モードでアウトラインを開いてください。
戻り値
正常終了の場合は0が戻され、それ以外はエラーが戻されます。
例
ESS_FUNC_M ESS_ISUniqMemberNameWithinDimatGenLev()
{
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_HMEMBER_T hDim,hNextDim;
ESS_BOOL_T pbNameUnique, bGen = ESS_TRUE;
ESS_USHORT_T usGenLevel = 3;
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 = EssOtlOpenOutlineQuery (hCtx, &Object, &hOutline);
if (!sts)
{
sts = EssOtlQueryGetFirstDimension(hOutline, &hDim);
if (sts)
printf("EssOtlQueryGetFirstDimension failed sts %ld\n",sts);
}
if (!sts)
{
sts = EssOtlIsMemberNameUniqueWithinDimAtGenLevel (hOutline, hDim, bGen, usGenLevel, &pbNameUnique);
if (sts)
printf("EssOtlIsMemberNameUniqueWithinDimAtGenLevel failed sts %ld\n",sts);
else
printf("pbNameUnique is %d\n", pbNameUnique);
}
if (!sts)
{
sts = EssOtlQueryGetNextDimension (hOutline, hDim, &hNextDim);
if (sts)
printf("EssOtlQueryGetFirstDimension failed sts %ld\n",sts);
}
if (!sts)
{
sts = EssOtlIsMemberNameUniqueWithinDimAtGenLevel (hOutline, hNextDim, bGen, usGenLevel, &pbNameUnique);
if (sts)
printf("EssOtlIsMemberNameUniqueWithinDimAtGenLevel failed sts %ld\n",sts);
else
printf("pbNameUnique is %d\n", pbNameUnique);
}
return sts;
}
関連トピック