Я создал отчет RDLC, и он отлично работает, когда я показываю его в веб-браузере. Но мой клиент теперь хочет, чтобы я отправил файл PDF в браузер/клиент, а не показывал отчет в веб-браузере. Я получаю сообщение об ошибке при добавлении кода для создания и отправки PDF-файла отчета клиенту/браузеру. Вот мой код, чтобы отправить PDF клиенту/браузер:Ошибка отчета RDLC: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetData"
TypeName="CourrierExpress.ExpressCourierDataSetTableAdapters.uspFrontEnd_Invoice_PrintInvoiceTableAdapter"
OldValuesParameterFormatString="original_{0}">
<SelectParameters>
<asp:QueryStringParameter Name="InvoiceId" QueryStringField="InvoiceId" Type="Int64"
DefaultValue="" />
</SelectParameters>
</asp:ObjectDataSource>
Я звоню этот код позади на время загрузки страницы:
Int64 invoiceId = int.Parse(Request.QueryString["InvoiceId"]);
Warning[] warnings;
string[] streamIds;
string mimeType;
string encoding;
string extension;
var rds = new ReportDataSource { DataSourceId = "ObjectDataSource1", Name = "DataSet1" };
var viewer = new ReportViewer();
viewer.ProcessingMode = ProcessingMode.Local;
viewer.LocalReport.DataSources.Clear();
viewer.LocalReport.ReportPath = "Reports/ReportInvoicePrint.rdlc"; //This is your rdlc name.
viewer.LocalReport.DataSources.Add(rds);
var bytes = viewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension,
out streamIds, out warnings);
Response.Buffer = true;
Response.Clear();
Response.ContentType = mimeType;
Response.AddHeader("content-disposition", "attachment; filename= filename" + "." + extension);
Response.OutputStream.Write(bytes, 0, bytes.Length); // create the file
Response.Flush(); // send it to the client to download
Response.End();
отчет RDLC имеет Dataset с именем «DataSet1». скриншот Ошибка: