アクティブ・データベース・アウトライン内の、特定のメンバーの計算式を取得します。
構文
ESS_FUNC_M EssGetMemberCalc (
hCtx, MbrName, pCalcStr, pLastCalcStr
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
MbrName |
ESS_STR_T |
メンバー名。 |
pCalcStr |
ESS_PSTR_T |
割り当てられたメンバー計算文字列を受け取るポインタのアドレス。 |
pLastCalcStr |
ESS_PSTR_T |
割り当てられたメンバーの最終計算文字列を受け取るポインタのアドレス。 |
備考
最後の計算文字列は、データベースを最後に計算したときにメンバーを計算するために使用した式です。計算スクリプトを使用してデータベースの計算を行った場合は、pCalStrが残る場合があります。
この関数は、リレーショナル・スパンのブール式が設定されているかどうかを確認し、添付されたリレーショナル・データ・セットに格納されているメンバーが計算文字列を持っているかどうかを判断できますが、計算文字列のかわりにNULL文字列を戻します。
pCalcStrとpLastCalcStrに対して割り当てられたメモリーは、EssFreeを使用して解放する必要があります。
戻り値
成功の場合は、計算文字列と最終計算文字列がpCalcStrとpLastCalcStrに戻されます。
アクセス
この関数を使用するには、呼出し元がデータベースに対して少なくとも読取りアクセス権(ESS_PRIV_READ)を持っていて、EssSetActiveを使用してそのデータベースをアクティブなデータベースとして選択している必要があります。
例
ESS_FUNC_M
ESS_GetMbrCalc (ESS_HCTX_T hCtx,
ESS_HINST_T hInst
)
{
ESS_FUNC_M sts = ESS_STS_NOERR;
ESS_STR_T calcStr, lastCalcStr;
calcStr = lastCalcStr = NULL;
sts = EssGetMemberCalc(hCtx, "Year", &calcStr, &lastCalcStr);
if (!sts)
{
if (calcStr)
{
printf ("Outline Defined Calc Equation -- [%s]\r\n", calcStr);
}
else
{
printf ("Outline Defined Calc Equation -- [Default Rollup]\r\n");
}
if (lastCalcStr)
{
printf ("Last Calculated Calc Equation -- [%s]\r\n", lastCalcStr);
}
else
{
if (calcStr)
printf ("Last Calculated Calc Equation -- [%s]\r\n", calcStr);
else
printf ("Last Calculated Calc Equation -- [Default Rollup]\r\n");
}
}
if (calcStr)
EssFree (hInst, calcStr);
if (lastCalcStr)
EssFree (hInst, lastCalcStr);
return (sts);
}
関連トピック