Автоматическое увеличение высоты графика

Обсуждение Stimulsoft Reports.NET
Ответить
Аватара пользователя
t0pdevice
Сообщения: 100
Зарегистрирован: 15 авг 2016, 09:59

Автоматическое увеличение высоты графика

Сообщение t0pdevice »

Есть отчёт, в котором есть график и при больших данных по Y оси, хочется чтобы он увеличивался.
Проблема в том, что DataBand на отчете также увеличивается по высоте. Как сделать, чтобы отчёт шел после того, как DataBand будет завершен в построении.
В какой элемент его можно поместить? Пробовал запихнуть отчёт в DataBand, FooterBand, EmptyBand и т.д. В них он нормально по высоте не отображается. А отображается он нормально, когда лежит просто на странице, но тогда будет пересечение DataBand и Chart визуально. Была идея сдвигать значение Top (сверху) у графика на основании высоты DataBand, но так и не получилось получить фактическую высоту DataBand на странице после того, как он заполнен данными, всегда возвращается высота из дизайнера.
report.png
report.png (49.36 КБ) 4412 просмотров
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Автоматическое увеличение высоты графика

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

Добрый вечер!

Предположу вам вариант на первой странице оставить всё, как есть, и создать вторую страницу, на который поместите ваш график.
Таким образом, сначала рендерится первая страница, а затем вторая с графиком.
Аватара пользователя
t0pdevice
Сообщения: 100
Зарегистрирован: 15 авг 2016, 09:59

Re: Автоматическое увеличение высоты графика

Сообщение t0pdevice »

Леонид, спасибо. Как вариант.

Тогда другой вопрос, если график строится на одной странице, то есть высота страницы изменяется и появляются разрывы, которые Stimulsoft отображает синим цветом (рамка и текст).
Можно это как-то отключить?
break.png
break.png (27.49 КБ) 4398 просмотров
Либо есть возможность построить график, чтобы он динамические изменялся по высота и разбивался по отдельным страницам, с нормальной визуализацией, чтобы нигде переход на другую страницу ничего не обрезал?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Автоматическое увеличение высоты графика

Сообщение HighAley »

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

Можно использовать дополнительные скипты для подсчёта необходимого количества страниц. Получать количесто строк для вывода и делить их для примера на 10. Потом отобразать по 10 записей на странице, положив чарт на бэнд данных и задав у бэнда свойство CountData. Также установив New Page Before = True. Значения на чарте можно отображать с помощью фильтров.

Ну или изменить размер страницы в событии End Render отчёта с помощью следующего кода:

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

foreach (StiPage page in this.RenderedPages)
{
	double max = 0;
	foreach (StiComponent comp in page.GetComponents())
	{
		if (comp.Bottom > max) max = comp.Bottom;
	}
    page.PageHeight = max + page.Margins.Top + page.Margins.Bottom;
	page.SegmentPerHeight = 1;
}
По вашему первому вопросу про расположение чарта, его лучше положить на Footer бэнд.

Спасибо.
Аватара пользователя
t0pdevice
Сообщения: 100
Зарегистрирован: 15 авг 2016, 09:59

Re: Автоматическое увеличение высоты графика

Сообщение t0pdevice »

HighAley, спасибо, а как отключить отображение границы страницы, в прошлом посте?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Автоматическое увеличение высоты графика

Сообщение HighAley »

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

К сожалению, убрать границы сегментов нельзя.
Вы можете использовать код в событии End Render и сегментов страниц не будет.

Спасибо.
Аватара пользователя
t0pdevice
Сообщения: 100
Зарегистрирован: 15 авг 2016, 09:59

Re: Автоматическое увеличение высоты графика

Сообщение t0pdevice »

Через End Render получилось. Спасибо.
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Re: Автоматическое увеличение высоты графика

Сообщение Ivan »

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

Всегда рады помочь.
Дайте знать, если вам понадобится ещё какая-нибудь помощь.

Спасибо.
Ответить