Страница 1 из 1

Объединение нескольких отчетов с последующим экспортом в xls

Добавлено: 19 апр 2013, 10:55
dSnix
Здравствуйте!
При объединении страниц из нескольких скомпилированных отчетов, экспорт результирующего отчета создает пустой файл. Предпросмотр также показывает пустой отчет. Предпросмотр каждого исходного отчета работает исправно.

Страницы исходных отчетов объединяются так:

Код: Выделить всё

        private void ExportReports(params StiReport[] reports)
        {
            var newReport = new StiReport();

            foreach (var stiReport in reports)
            {
                foreach (StiPage stiPage in stiReport.RenderedPages)
                {
                    var page = (StiPage)stiPage.Clone();

                    page.Report = newReport;
                    stiPage.Guid = Guid.NewGuid().ToString().Replace("-", "");
                    newReport.RenderedPages.Add(stiPage); 
                }
            }

            newReport.ExportDocument(StiExportFormat.Excel2007, "filename.xlsx"); ;
        }
В чем может быть проблема?

Re: Объединение нескольких отчетов с последующим экспортом в

Добавлено: 19 апр 2013, 14:12
HighAley
Здравствуйте.

Вы пишете о скомпилированных отчётах, а в коде добавляете отрендеренные. Попробуйте для начала запустить метод Render().

Спасибо.

Re: Объединение нескольких отчетов с последующим экспортом в

Добавлено: 23 апр 2013, 12:28
dSnix
Проблема действительно была в рендере отчетов.
Вот так все работает:

Код: Выделить всё

private void ExportReports(params StiReport[] reports)
        {
            var newReport = new StiReport();
            newReport.RenderedPages.Clear();
            newReport.NeedsCompiling = false;
            newReport.IsRendered = true; 

            foreach (var stiReport in reports)
            {
                if (!stiReport.IsRendered)
                    stiReport.Render();

                foreach (StiPage stiPage in stiReport.RenderedPages)
                {
                    var page = (StiPage)stiPage.Clone();

                    page.Report = newReport;
                    page.Guid = Guid.NewGuid().ToString().Replace("-", "");
                    newReport.RenderedPages.Add(page); 
                }
            }

            newReport.ExportDocument(StiExportFormat.Excel2007, "filename.xlsx"); ;
        }
Спасибо!

Re: Объединение нескольких отчетов с последующим экспортом в

Добавлено: 24 апр 2013, 09:14
HighAley
Здравствуйте.

Мы были рады вам помочь.
Обращайтесь, если возникнут ещё вопросы.

Спасибо.