Пустое место на странице с кросс-табом

Обсуждение Stimulsoft Reports.NET
Ответить
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Пустое место на странице с кросс-табом

Сообщение Леонид »

Добрый день, уважаемые!

Возник ещё один вопрос. На странице есть ReportTitle и ниже, расположен Cross-tab. Так вот, первая страница печатается как надо, а последующие с пустым пространством, равным значению Top кросс-таба.

Соответственно, пробовал различные варианты: "игрался" флагами CanGrow, CanShrink и пр., даже добавлял DataBand с непривязанным к нему источником данных (этот вариант работает чуть ли не на порядок медленнее) - ничего не помогает.

Если поставить у кросс-таба Top в ноль, то всё печатается так как надо, но заголовок при этом разумеется наслаивается (печатается поверх) на кросс-таб.

Сам отчёт и скрин проблемы в приложении.
Вложения
Отчёт о движении товара по месяцам.mrt
(27.34 КБ) 158 скачиваний
Clipboard01.jpg
Clipboard01.jpg (62.3 КБ) 2232 просмотра
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Пустое место на странице с кросс-табом

Сообщение Aleksey »

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

К сожалению, но на данный момент, реализовать данную задачу можно только разместив компонент CrossTab на компоненте DataBand.

Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Пустое место на странице с кросс-табом

Сообщение Леонид »

Всё понятно, но дело в том, что разместив CrossTab на DataBand скорость падает почти на порядок.

К примеру, сам select отрабатывает за 10 сек., отчёт рисуется 2 сек., это без DataBand'а. Тот же отчёт с положенным на DataBand кросс-табом рисуется уже 58-59 сек., что почти на порядок больше. А это выборка данных по одному менджеру и за неделю, если взять (что бывает очень часто) выборку за год и по всем менеджерам, то никто из пользователей просто не дождётся пока нарисуется отчёт.

У меня простое видение решения этой задачи - если бы можно было определить, например в событии Rendering, что это вторая страница и выставить Top = 0 у кросс-таба, то проблема решилась бы.

Т.е. типа так (полу-псевдокод):

bool isFirstPagePassed = false; 1)
{
CrossTab.Top = 0;
isFirstPagePassed = true;
}
}

Или может есть какие-нибудь другие варианты?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Пустое место на странице с кросс-табом

Сообщение Aleksey »

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

Как вариант, в событии "BeforePrint" страницы, вы можете использовать следующий код:

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

if (PageNumber > 1)
	CrossTab1.Dock = DockStyle.Top;
Спасибо.
Вложения
SampleReport.mrt
(22.24 КБ) 276 скачиваний
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Пустое место на странице с кросс-табом

Сообщение Леонид »

О, да! То, что надо! :biggrin:

Именно это я и имел ввиду. Всё заработало.

Благодарю!
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Пустое место на странице с кросс-табом

Сообщение Aleksey »

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

Всегда рады помочь.
Сообщите, если понадобится дополнительная помощь.
Ответить