Добрый день, уважаемые!
Возник ещё один вопрос. На странице есть ReportTitle и ниже, расположен Cross-tab. Так вот, первая страница печатается как надо, а последующие с пустым пространством, равным значению Top кросс-таба.
Соответственно, пробовал различные варианты: "игрался" флагами CanGrow, CanShrink и пр., даже добавлял DataBand с непривязанным к нему источником данных (этот вариант работает чуть ли не на порядок медленнее) - ничего не помогает.
Если поставить у кросс-таба Top в ноль, то всё печатается так как надо, но заголовок при этом разумеется наслаивается (печатается поверх) на кросс-таб.
Сам отчёт и скрин проблемы в приложении.
Пустое место на странице с кросс-табом
Пустое место на странице с кросс-табом
- Вложения
-
- Отчёт о движении товара по месяцам.mrt
- (27.34 КБ) 158 скачиваний
-
- Clipboard01.jpg (62.3 КБ) 2232 просмотра
Пустое место на странице с кросс-табом
Здравствуйте,
К сожалению, но на данный момент, реализовать данную задачу можно только разместив компонент CrossTab на компоненте DataBand.
Спасибо.
К сожалению, но на данный момент, реализовать данную задачу можно только разместив компонент CrossTab на компоненте DataBand.
Спасибо.
Пустое место на странице с кросс-табом
Всё понятно, но дело в том, что разместив CrossTab на DataBand скорость падает почти на порядок.
К примеру, сам select отрабатывает за 10 сек., отчёт рисуется 2 сек., это без DataBand'а. Тот же отчёт с положенным на DataBand кросс-табом рисуется уже 58-59 сек., что почти на порядок больше. А это выборка данных по одному менджеру и за неделю, если взять (что бывает очень часто) выборку за год и по всем менеджерам, то никто из пользователей просто не дождётся пока нарисуется отчёт.
У меня простое видение решения этой задачи - если бы можно было определить, например в событии Rendering, что это вторая страница и выставить Top = 0 у кросс-таба, то проблема решилась бы.
Т.е. типа так (полу-псевдокод):
bool isFirstPagePassed = false; 1)
{
CrossTab.Top = 0;
isFirstPagePassed = true;
}
}
Или может есть какие-нибудь другие варианты?
К примеру, сам select отрабатывает за 10 сек., отчёт рисуется 2 сек., это без DataBand'а. Тот же отчёт с положенным на DataBand кросс-табом рисуется уже 58-59 сек., что почти на порядок больше. А это выборка данных по одному менджеру и за неделю, если взять (что бывает очень часто) выборку за год и по всем менеджерам, то никто из пользователей просто не дождётся пока нарисуется отчёт.
У меня простое видение решения этой задачи - если бы можно было определить, например в событии Rendering, что это вторая страница и выставить Top = 0 у кросс-таба, то проблема решилась бы.
Т.е. типа так (полу-псевдокод):
bool isFirstPagePassed = false; 1)
{
CrossTab.Top = 0;
isFirstPagePassed = true;
}
}
Или может есть какие-нибудь другие варианты?
Пустое место на странице с кросс-табом
Здравствуйте,
Как вариант, в событии "BeforePrint" страницы, вы можете использовать следующий код:
Спасибо.
Как вариант, в событии "BeforePrint" страницы, вы можете использовать следующий код:
Код: Выделить всё
if (PageNumber > 1)
CrossTab1.Dock = DockStyle.Top;
- Вложения
-
- SampleReport.mrt
- (22.24 КБ) 276 скачиваний
Пустое место на странице с кросс-табом
О, да! То, что надо! :biggrin:
Именно это я и имел ввиду. Всё заработало.
Благодарю!
Именно это я и имел ввиду. Всё заработало.
Благодарю!
Пустое место на странице с кросс-табом
Здравствуйте,
Всегда рады помочь.
Сообщите, если понадобится дополнительная помощь.
Всегда рады помочь.
Сообщите, если понадобится дополнительная помощь.