Я использую ReportViewer в VS2015, пишу на C #.Мои отчеты выглядят примерно так (не зацикливайтесь на контенте, я просто показываю, что это в основном текстовые поля):
Как видите, большая часть моего отчета - это текстовые поля, все поля заполняются из наборов данных.
Отчет работает безупречно.он экспортирует в Excel и PDF без проблем.Тем не менее, мои конечные пользователи хотят это в Word, и это не работает.Я получаю сообщение об ошибке:
InnerException {"Тело слишком сложное для экспорта в Word. Пожалуйста, сгруппируйте элементы ReportItems вместе в прямоугольники для упрощения."} System.Exception {Microsoft.ReportingServices.OnDemandReportRendering.ReportRenderingException}
Первоначально я использовал встроенную функцию экспорта в инструментальную полоску, а затем написал свою собственную.Код здесь:
private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = @"C:\";
saveFileDialog.RestoreDirectory = true;
saveFileDialog.Title = "Browse Text Files";
saveFileDialog.DefaultExt = "docx";
saveFileDialog.Filter = "Word Doc (*.docx) | *.docx | PDF(*.pdf) | *.pdf";
saveFileDialog.CheckFileExists = false;
saveFileDialog.CheckPathExists = true;
Warning[] warnings;
string[] streams;
string mimeType;
string encoding;
string extension;
byte[] bytes = FirstTestReport.LocalReport.Render("WordOpenXml", null, out mimeType, out encoding, out extension, out streams, out warnings);
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
var filename = saveFileDialog.FileName;
System.IO.FileStream file = new System.IO.FileStream(filename, System.IO.FileMode.Create);
file.Write(bytes, 0, bytes.Length);
file.Close();
}
}
Что я могу сделать с моим кодом, чтобы это исправить, или это известная "ошибка" в процессе рендеринга?Я где-то читал, что ReportViewer обрабатывает каждое текстовое поле как таблицу, что и вызывает сложность.Тем не менее, сама ошибка говорит, чтобы окружить их прямоугольником?
FWIW, ошибка происходит в строке, начинающейся с "byte [] bytes ="
Этот отчет состоит примерно из 60 подотчетов,Все, что быстро и безболезненно, кроме моей собственной казни, ценится.