サーバーでレポート・ファイルを実行します。
構文
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); } }
関連トピック