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

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

Добавлено: 25 янв 2011, 05:09
Леонид
Добрый день, уважаемые!

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

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

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

Сам отчёт и скрин проблемы в приложении.

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

Добавлено: 25 янв 2011, 11:10
Aleksey
Здравствуйте,

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

Спасибо.

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

Добавлено: 26 янв 2011, 06:17
Леонид
Всё понятно, но дело в том, что разместив CrossTab на DataBand скорость падает почти на порядок.

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

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

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

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

Или может есть какие-нибудь другие варианты?

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

Добавлено: 27 янв 2011, 04:11
Aleksey
Здравствуйте,

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

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

if (PageNumber > 1)
	CrossTab1.Dock = DockStyle.Top;
Спасибо.

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

Добавлено: 27 янв 2011, 05:41
Леонид
О, да! То, что надо! :biggrin:

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

Благодарю!

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

Добавлено: 27 янв 2011, 05:44
Aleksey
Здравствуйте,

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