Страница 2 из 3

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

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

Спасибо.

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

Добавлено: 23 авг 2010, 05:02
Леонид
Да, положил cross-tab на DataBand (свойство PrintTitleOnAllPages по умолчанию true) - заголовки стали отображаться на всех страницах. Супер! :biggrin: Благодарю!

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

Добавлено: 23 авг 2010, 07:05
Aleksey
Отлично! Спасибо!

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

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

Спасибо.

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

Добавлено: 25 авг 2010, 05:26
fantomus
Здравствуйте.

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

Присоединяю картинку с моим кросс-табом.

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

Добавлено: 25 авг 2010, 12:55
Aleksey
Здравствуйте,

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

Спасибо.

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

Добавлено: 25 авг 2010, 13:15
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. Так и не понял, как оставить заголовки кросс-таба только на первой странице?


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

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

Спасибо.

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

Добавлено: 26 авг 2010, 06:47
fantomus
Спасибо, Aleksey.

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

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

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

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

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

Еще раз спасибо.

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

Добавлено: 26 авг 2010, 08:29
fantomus
Да, еще баг обнаружил.

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

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

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