アクティブ・データベース・アウトライン内の、特定のメンバーの計算式を取得します。
構文
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); }
関連トピック