Отобразить отчет RDLC как документ Word (как документ, а не документ)
Нам нужно создать отчет RDLC непосредственно в формате Word или PDF без использования средства просмотра отчетов. Здесь у нас есть два вопроса.
1) При рендеринге отчета в формате docx используется формат "WORDOPENXML". MS Word (2013) не может открыть сгенерированный файл. Это дает следующую ошибку,
Мы сожалеем, что не можем открыть docx, потому что обнаружили, что файл с содержимым поврежден и не может быть открыт.
Однако он может быть сгенерирован как документ, используя формат "WORD". Тогда он может быть успешно открыт.
Но я предпочитаю генерировать его как Docx, если это вообще возможно.
2) Хотя мы можем сгенерировать его как файл документа, фоновые изображения в разделе заголовка отсутствуют. Мы использовали бланк в качестве фонового изображения отчета.
Нет проблем при создании отчета в формате PDF.
Вот код, используемый для генерации отчета.
ReportViewer reportViewer = new ReportViewer();
LocalReport localReport = new LocalReport();
localReport.ReportPath = Path.Combine(_env.ReportPath, "RollReport.rdlc");
//Set the datasource for the report
localReport.DataSources.Clear();
localReport.DataSources.Add(new ReportDataSource("Details", dtBCDetails));
localReport.DataSources.Add(new ReportDataSource("Properties", dtPropDetails));
localReport.DataSources.Add(new ReportDataSource("Insurence", dtInsurence));
localReport.DataSources.Add(new ReportDataSource("PropertyOwners", dtPropertyOwners));
//Pass parameters to the report
localReport.SetParameters(new Microsoft.Reporting.WebForms.ReportParameter[] { new Microsoft.Reporting.WebForms.ReportParameter("BodyCorporateID", bcid.ToString()) });
localReport.Refresh();
//Get the byte stream for the report rendered as PDF
byte[] bytes = localReport.Render(format, null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);
Stream repStream = new MemoryStream(bytes);
Любая помощь будет принята с благодарностью. Спасибо Wijitha
1 ответ
Не знаю, если вам все еще нужна информация, но я могу помочь вам по крайней мере с docx... Если вы используете WORDOPENXML вместо WORD в качестве параметра формата, генерируется файл docx.