共有または拡張共有メンバーの元のメンバー名が戻されます。共有メンバーでない場合は、戻り値はNULLです。この関数は完全に修飾された元のメンバー名が戻されます。
構文
ESS_FUNC_M EssOtlGetOriginalMember (
hOutline, hMember, ppOriMember
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hOutline |
ESS_HOUTLINE_T |
アウトラインのコンテキスト・ハンドル(入力)。 |
hMember |
ESS_HMEMBER_T |
メンバー名(入力)。 |
ppOriMember |
ESS_PSTR_T |
元のメンバー名(出力)。 |
備考
この関数は、編集モードとクエリー・モードのどちらでも動作します。
すべてのメンバー名が一意であるアウトラインでこの関数を使用した場合は、無効です。
重複するメンバー名が許可されるアウトラインで、渡されたメンバー・ハンドルが拡張の共有メンバーまたは標準の共有メンバーである場合には、この関数はパス式として元のメンバーを戻します。
次の階層では、[Diet].[100-10]に対応するメンバー・ハンドルをこの関数に渡すと、[200].[100-10]が戻されます。
100
100-10
200
100-10 (duplicate)
Diet
100-10 (shared with [200.100-10])
戻り値
正常終了の場合は0が戻され、それ以外はエラーが戻されます。
例
Sample Basic共有メンバー100-10で戻される「元のメンバー」は[100].[100-20]であるとします。
ESS_FUNC_M ESS_GetOrigMember()
{
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 hMember = ESS_NULL, ChildMember = ESS_NULL;
ESS_STR_T OriMember;
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);
// sts = EssOtlOpenOutlineQuery (hCtx, &Object, &hOutline);
if (!sts)
{
sts = EssOtlFindMember(hOutline, "Diet", &hMember);
}
//Get member handle for shared member "100-10"
if (!sts && hMember)
{
sts = EssOtlGetChild(hOutline, hMember, &ChildMember);
}
if (!sts && ChildMember)
{
sts = EssOtlGetOriginalMember (hOutline, ChildMember, &OriMember);
printf("Original member for shared member \"100-10\" is: %s", OriMember);
}
return sts;
}
関連トピック