サーバーでレポート・ファイルを実行します。
構文
ESSG_FUNC_M
EssGBeginReportFile
(
hGrid, pszReportName, bLocal, ulOptions
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hGrid |
ESSG_HGRID_T |
EssGNewGridから戻されるハンドル。 |
pszReportName |
ESSG_STR_T |
実行するレポートの名前。このレポートがサーバー上にある場合、APPLICATION\DATABASEディレクトリにあります。ローカルの場合は、この文字列にはレポートの絶対パス名が含まれます。 |
bLocal |
ESSG_BOOL_T |
レポートがローカルに存在しているのかどうかを示すブール値。TRUEの値はローカルに、FALSEの値はサーバー上に存在していることを示します。 |
ulOptions |
ESSG_ULONG_T |
戻されるグリッド・オプションを記述したビットマスク。有効な値は次のとおりです: ESSG_NOATTRIBUTESはpAttributesの値なしでグリッドを戻します |
備考
結果は2次元のセル配列で戻されます。
この操作では、行を送信する必要はありません。EssGPerformOperation、EssGGetResults、およびEssGGetRowsを呼び出すだけで十分です。
戻されたセル値の属性は、別のサーバー要求を使用して取得されます。ulOptionsパラメータにESSG_NOATTRIBUTESを渡すと、サーバーの発行する要求が1つ少なくなり、大規模な結果グリッドではより高速になります。
グリッドAPIを介してサーバーに渡されたレポートでは、必ずタブで区切られたレポート・フォーマットを戻す要求をする必要があります{TABDELIM}。タブで区切られていないレポート・フォーマットが戻されると、グリッドAPIが生成されたレポートをグリッドに変換できない場合があります。
#Missingの別名に使用される文字列がレポート指定により変更されると、欠落セルは文字列タイプ(ESSG_DT_STRING)として戻されます。また、このとき、新しい#Missingセルの別名は、ESSG_DT_MISSINGセルではなくテキストとして一緒に戻されます。
ローカル以外(サーバー上)のレポート・ファイル・オブジェクトでは、pszReportNameパラメータにファイル拡張子を使用しないでください。
戻り値
正常終了の場合は、ESSG_STS_NOERRが戻されます。
アクセス
なし。
例
ESSG_VOID_T ESSG_BeginReportFile (ESSG_HGRID_T hGrid)
{
ESSG_FUNC_M sts = ESS_STS_NOERR;
ESSG_PPDATA_T ppDataOut;
ESSG_RANGE_T rDataRangeOut;
ESSG_ULONG_T ulOptions;
ESSG_STR_T pszReportName;
ESSG_BOOL_T bLocal;
ESSG_USHORT_T usState;
/* connect the grid to a database on the server */
sts = EssGConnect(hGrid, "Rainbow", "Admin",
"Password", "Demo", "Basic",
ESSG_CONNECT_DEFAULT);
if(sts == 0)
{
pszReportName = "DescYear";
bLocal = ESSG_FALSE;
ulOptions = ESSG_NOATTRIBUTES;
/*start the report file operation */
sts = EssGBeginReportFile(hGrid,
pszReportName,bLocal, ulOptions);
}
if(sts == 0)
{
/* perform the report operation */
sts = EssGPerformOperation(hGrid, 0);
}
if (sts == 0)
{
/* determine the results of the report operation */
sts = EssGGetResults(hGrid, 0, &rDataRangeOut, &usState);
}
if(sts ==0)
{
/* get all the data */
sts = EssGGetRows(hGrid, 0, &rDataRangeOut,
&rDataRangeOut, &ppDataOut);
}
if(sts == 0)
{
DisplayOutput(ppDataOut, rDataRangeOut);
/* Free the returned data */
EssGFreeRows(hGrid, &rDataRangeOut, ppDataOut);
}
if(!sts)
{
EssGEndOperation(hGrid, 0);
EssGDisconnect(hGrid, 0);
}
}
関連トピック