Посоветуйте - проблемма с отчетом

Обсуждение Stimulsoft Reports.NET
Alkatraz
Сообщения: 22
Зарегистрирован: 27 апр 2010, 16:46

Посоветуйте - проблемма с отчетом

Сообщение Alkatraz »

Тестируем ваш отчетник - пытаемся перенести один из уже готовых отчетов.

В отчете есть три страницы, одна из которых альбомной ориентации. На каждой из страниц отображается свой блок статистики, который может не влезать в отведенную ему длинну (высоту страницы). Первые две страницы должны просто динамически изменять свой размер в зависимости от объема содержимого, а вот третья страница, помимо изменения своей высоты, должна при определенных условиях (начало новой группы данных) формировать новую страницу.

Как я понимаю, для этих целей существует EndlessHeight и ExcelSheet. Для первой и второй страницы задаются EndlessHeight и уникальное наименование в ExcelSheet. Для третьей так же задается EndlessHeight, а в ExcelSheet пишется выражение, аналогичное задаваемому в групповом банде.

В итоге, при предпросмотре и последующем экспорте, все страницы сливаются в одну и на закладки при экспорте в Excel не делятся. Если же снять EndlessHeight, то при экспорте страницы корректно разбиваются на закладки в соответствии со значениями, формируемыми в ExcelSheet, но динамически свой размер не меняют, а формируют новые страницы.

Помогите решить проблемму, пожалуйста!
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Посоветуйте - проблемма с отчетом

Сообщение Ivan »

Здравствуйте.

С проблемой разобрались.
Патч будет включен в следующий предрелизный билд.

Спасибо.
Alkatraz
Сообщения: 22
Зарегистрирован: 27 апр 2010, 16:46

Посоветуйте - проблемма с отчетом

Сообщение Alkatraz »

Вот еще заметил:

Допустим в исходной таблице есть три поля. Отчет содержит три страницы, в каждой данные из этой таблицы группируются по первому, второму и третьему полю соответственно. На третьей странице в заголовке группы стоит New Page Before и Skip First, в поле ExcelSheet стоит то же выражение, что и в условии группировки заголовка группы (допустим, группировка по третьему полю).

При экспорте в Excel, первые две страницы располагаются именно на тех закладках, наименования которых были заданы статически в свойствах ExcelSheet, а вот заголовок третьей закладки содержит значение поля последней записи в группировке второй страницы, хотя в содержимом третьей закладки все отображается корректно - значения первой записи группировки третьей страницы. Все остальные закладки именуются корректно, хотя не поручусь - проверяющие говорили, что иногда в заголовке закладки содержится не та информация, которая должна была бы там быть по условиям группировки.

Рискну предположить, что если данные из источника были сгруппированы и выведены в одной странице, то при переключении на другую страницу, где используется группировка по другим условиям, указатель на строку в таблице не сбрасывается на новые условия группировки на странице, что логично.

Вопрос - как сделать так, что бы наименование закладки (свойство ExcelSheet) всегда соответствовало, допустим, условию группировки заголовка группы (на странице всего одна группировка и более ничего, каждое новое значение по условию группировки должно выводиться на новой странице)?
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Посоветуйте - проблемма с отчетом

Сообщение Ivan »

Здравствуйте.

Пока не смогли воспроизвести проблему, наверно не учитываем какой-то фактор.
Вышлите пожалуйста образец вашего отчета с данными, на которых стабильно воспроизводится проблема, для анализа.

Спасибо.
Alkatraz
Сообщения: 22
Зарегистрирован: 27 апр 2010, 16:46

Посоветуйте - проблемма с отчетом

Сообщение Alkatraz »

Образец очета это вы имеете ввиду файл *.mdc или исходник *.mrt?

Объясните, пожалуйста, как подготовить вам данные, необходимые для анализа.
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Посоветуйте - проблемма с отчетом

Сообщение Ivan »

Здравствуйте.

Пришлите пожалуйста ваш шаблон отчета (MRT-файл) и базу данных, которая необходима для построения этого отчета.
Ошибку построения отчета надо отлавливать в момент построения отчета, по готовому файлу отчета (MDC) причину ошибки чаще всего не понять.

Спасибо.
Alkatraz
Сообщения: 22
Зарегистрирован: 27 апр 2010, 16:46

Посоветуйте - проблемма с отчетом

Сообщение Alkatraz »

Гм, ладно, попробую сымитировать на тестовой базе т тестовом отчете...
Andrew
Сообщения: 586
Зарегистрирован: 09 июн 2006, 12:22

Посоветуйте - проблемма с отчетом

Сообщение Andrew »

Спасибо
Alkatraz
Сообщения: 22
Зарегистрирован: 27 апр 2010, 16:46

Посоветуйте - проблемма с отчетом

Сообщение Alkatraz »

Вот тестовый отчет.
Отчет

В соединении просто укажите любой SQL Server.

Скорее всего я что-то не так реализовал. По задумке, первые два листа должны иметь фиксированное имя в закладке в Excel, а вот третий лист должен создавать новую закладку для каждой новой группы данных с наименованием, равным значению группировки.

После экспорта в Excel видно, что две страницы имеют корректные закладки, а вот третья закдалка имеет в наименовании значение поля из группировки второй страницы...
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Посоветуйте - проблемма с отчетом

Сообщение Ivan »

Здравствуйте.

Процесс построения отчета такой: сначала создается новая страница, а уже после на неё начинают рендериться компоненты.
Соответственно на момент создания страницы Page3 текущей записью в DataSource является последняя запись, использованная на предыдущей странице (или первая запись, если это рендерится первая страница отчета). Позиция DataSource изменяется, только когда рендеринг доходит до датабэнда. Поэтому у первой страницы из группы может быть неправильное имя.

Эта проблема решается использованием переменной и двух событий. Первое событие вешается на страницу и сохраняет в переменной ссылку на эту текущую страницу. Второе событие на GroupHeader берет ссылку из переменной и заполняет поле ExcelSheet страницы. Пример отчета прикреплен.

Спасибо.

Вложения
Отчет 2.zip
(2.52 КБ) 194 скачивания
Ответить