Вопросы по Cross-tab'у

Обсуждение Stimulsoft Reports.NET
Anton Lozovskiy
Сообщения: 264
Зарегистрирован: 12 ноя 2007, 08:16

Вопросы по Cross-tab'у

Сообщение Anton Lozovskiy »

Здравствуйте,
leon писал(а): Да, происходит. Всё работает. Отлично! Спасибо! :biggrin:
Первые два вопроса отпадают, но остаётся третий (см. первый пост на картинке) - каким образом можно сделать так, чтобы колонки из заголовка печатались не только на первой странице?
Перенесите cross-tab на DataBand и выключите свойство PrintTitleOnAllPages у кросс-таблицы.

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

Вопросы по Cross-tab'у

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

Да, положил cross-tab на DataBand (свойство PrintTitleOnAllPages по умолчанию true) - заголовки стали отображаться на всех страницах. Супер! :biggrin: Благодарю!
Aleksey
Сообщения: 2793
Зарегистрирован: 22 апр 2010, 06:57

Вопросы по Cross-tab'у

Сообщение Aleksey »

Отлично! Спасибо!
Aleksey
Сообщения: 2793
Зарегистрирован: 22 апр 2010, 06:57

Вопросы по Cross-tab'у

Сообщение Aleksey »

Здравствуйте,
fantomus писал(а): Только вылезла проблема с производительностью.
В таком варианте отчет формируется в разы а может и на порядок медленнее на большом массиве данных.
Например, если кросс-таб не находится на бэнде, отчет формируется около 10 секунд на массиве из 5 000 строк.
Если кросс-таб положить на бэнд - около 3-х минут!
Это совсем плохой результат.
Мы протестировали данный момент и у нас такой проблемы не возникло.
На таблицу из 20 000 строк формирование что на датабэнде, что без него уходит где-то порядка 50-60 секунд, разницы нет.
Возможно если бы были какие-то реальные данные можно было бы сказать что-то конкретное.

Спасибо.
fantomus
Сообщения: 215
Зарегистрирован: 22 апр 2009, 06:41
Откуда: Kyiv, Ukraine

Вопросы по Cross-tab'у

Сообщение fantomus »

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

У меня на 1 000 записей результат с бэндом и без не сильно различается, а уже на 10 000 без бэнда - около 5 сек на весь отчет, а с бэндом - по 15 сек на страницу...
Я немного поэкспериментировал с колонками и столбцами, получается, что скорость сильно падает при увеличении колонок или столбцов на одном и том же массиве данных.
Без бэнда такой эффект практически незаметен.

Присоединяю картинку с моим кросс-табом.
Вложения
cross.png
cross.png (12 КБ) 3248 просмотров
Aleksey
Сообщения: 2793
Зарегистрирован: 22 апр 2010, 06:57

Вопросы по Cross-tab'у

Сообщение Aleksey »

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

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

Спасибо.
fantomus
Сообщения: 215
Зарегистрирован: 22 апр 2009, 06:41
Откуда: Kyiv, Ukraine

Вопросы по Cross-tab'у

Сообщение fantomus »

Нехорошо, конечно.
Надеюсь удасться решить эту проблему в ближайшем будующем...

Но можно обойтись другими способами.

1. Для создания страницы нужной ширины (на всю ширину кросс-таба) я использовал следующий подход:

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

        public void Report1_BeginRender(object sender, System.EventArgs e)
        {
            Page1.Width = 1000;
        }
        
        public void Report1_EndRender(object sender, System.EventArgs e)
        {
            double maxWidth = 0;
foreach (StiPage page in this.RenderedPages)
{
foreach (StiComponent comp in page.GetComponents())
{
	if (((StiComponent)comp != null) && (comp.Left + comp.Width > maxWidth)) maxWidth = comp.Left + comp.Width;
}
    page.Width = maxWidth;
};
        }
Может все-же можно добавить свойство Unlimited Width, которое будет реализовывать этот код?

2. Для создания страницы с неограниченной высотой, как я понял, нужно использовать Unlimited Height = true.
Но работает это только с бэндом.
А мне такой вариант не подходит.
Как быть?

3. Так и не понял, как оставить заголовки кросс-таба только на первой странице?

Aleksey
Сообщения: 2793
Зарегистрирован: 22 апр 2010, 06:57

Вопросы по Cross-tab'у

Сообщение Aleksey »

fantomus писал(а): 1. Для создания страницы нужной ширины (на всю ширину кросс-таба) я использовал следующий подход:
Может все-же можно добавить свойство Unlimited Width, которое будет реализовывать этот код?
На данный момент, тимлидеры очень негативно относятся к добавлению новых свойств в какие-либо компоненты.
fantomus писал(а): 2. Для создания страницы с неограниченной высотой, как я понял, нужно использовать Unlimited Height = true.
Но работает это только с бэндом.
А мне такой вариант не подходит.
Как быть?
На данный момент, к сожалению, остается так как есть. Вариант только использовать бенд, но с потерями скорости.
fantomus писал(а): 3. Так и не понял, как оставить заголовки кросс-таба только на первой странице?
Для заголовков кросс-таба поставьте свойство "Print on All Page" в false.

Спасибо.
fantomus
Сообщения: 215
Зарегистрирован: 22 апр 2009, 06:41
Откуда: Kyiv, Ukraine

Вопросы по Cross-tab'у

Сообщение fantomus »

Спасибо, Aleksey.

В целом задачу решить удалось.

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

Например:
1. Добавить в контекстное меню Cross-Column/Cross-Row пункт "Show Total"
2. Добавить для кросс-таба свойство "Print Headers on All Pages" (и добавить в контекстное меню)
Отключать индивидуально неудобно да и не слишком интуитивно понятно.
3. Добавить для кросс-таба свойство "Show Headers" (и добавить в контекстное меню)
Зачастую они не нужны, в дизанере мешают только, а отключать приходится вручную и каждый отдельно.

Это мелкие изменения, а работу с кросс-табом упрощают значительно.

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

Еще раз спасибо.
fantomus
Сообщения: 215
Зарегистрирован: 22 апр 2009, 06:41
Откуда: Kyiv, Ukraine

Вопросы по Cross-tab'у

Сообщение fantomus »

Да, еще баг обнаружил.

Не соверно отображается выравнивание Cross-Row/Column при просмотре готового отчета.

Как воспроизвести:
Берем отчет "Standard Cross-Tab" из демо.
Для "Country" меняем выравнивание на "Align Left".
Предпросмотр.
Сохраняем в формате готового отчета.
Сразу в превью нажимаем "Open" и открываем сохраненный отчет.
Выравнивание изменилось с "Align Left" на "Align Center".

Для столбцов аналогично.
Ответить