通常実行すると正しいデータが返されるというレポートがありますが、レポート実行サービスを介して実行すると、レポートにデータが含まれていません。フィルタリングするIDを含むパラメーターを渡し、レポートのラベルを使用して、レポートが送信されていることを検証できます。
ExecutionLogStorageテーブルを見ると、レポートがrsSuccessのステータスで実行されていることがわかりますが、RowCountは0です。イベントログまたはレポートサーバーログにエラーはありません。
以下は、レポートをPDFに報告するために使用する方法です。
public byte[] Render( ReportRequest rptRequest )
{
ReportExecutionService rs = new ReportExecutionService();
rs.Credentials = CredentialCache.DefaultCredentials;
rs.Url = rptRequest.ReportExecutionServerEndPoint;
string reportPath = string.Format(
"/{0}/{1}",
rptRequest.ReportDataBaseName,
rptRequest.ReportName );
string format = "PDF";
string historyID = null;
string devInfo =
@"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";
string encoding;
string mimeType;
string extension;
Warning[] warnings;
string[] streamIDs;
ExecutionHeader execHeader = new ExecutionHeader();
rs.ExecutionHeaderValue = execHeader;
rs.LoadReport( reportPath, historyID );
rs.SetExecutionParameters( rptRequest.ReportParameters, "en-us" );
return rs.Render(
format,
devInfo,
out extension,
out encoding,
out mimeType,
out warnings,
out streamIDs );
}