我有一个报告,正常运行时它返回正确的数据,但是当我通过报告执行服务运行时,报告不包含任何数据。我们确实传递了一个包含我们过滤的 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 );
}