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

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

Добавлено: 03 окт 2017, 14:27
t0pdevice
Есть отчёт, в котором есть график и при больших данных по Y оси, хочется чтобы он увеличивался.
Проблема в том, что DataBand на отчете также увеличивается по высоте. Как сделать, чтобы отчёт шел после того, как DataBand будет завершен в построении.
В какой элемент его можно поместить? Пробовал запихнуть отчёт в DataBand, FooterBand, EmptyBand и т.д. В них он нормально по высоте не отображается. А отображается он нормально, когда лежит просто на странице, но тогда будет пересечение DataBand и Chart визуально. Была идея сдвигать значение Top (сверху) у графика на основании высоты DataBand, но так и не получилось получить фактическую высоту DataBand на странице после того, как он заполнен данными, всегда возвращается высота из дизайнера.
report.png
report.png (49.36 КБ) 4985 просмотров

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

Добавлено: 03 окт 2017, 17:47
Леонид
Добрый вечер!

Предположу вам вариант на первой странице оставить всё, как есть, и создать вторую страницу, на который поместите ваш график.
Таким образом, сначала рендерится первая страница, а затем вторая с графиком.

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

Добавлено: 04 окт 2017, 10:14
t0pdevice
Леонид, спасибо. Как вариант.

Тогда другой вопрос, если график строится на одной странице, то есть высота страницы изменяется и появляются разрывы, которые Stimulsoft отображает синим цветом (рамка и текст).
Можно это как-то отключить?
break.png
break.png (27.49 КБ) 4971 просмотр
Либо есть возможность построить график, чтобы он динамические изменялся по высота и разбивался по отдельным страницам, с нормальной визуализацией, чтобы нигде переход на другую страницу ничего не обрезал?

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

Добавлено: 04 окт 2017, 19:04
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 бэнд.

Спасибо.

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

Добавлено: 05 окт 2017, 10:37
t0pdevice
HighAley, спасибо, а как отключить отображение границы страницы, в прошлом посте?

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

Добавлено: 06 окт 2017, 18:16
HighAley
Здравствуйте.

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

Спасибо.

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

Добавлено: 09 окт 2017, 09:27
t0pdevice
Через End Render получилось. Спасибо.

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

Добавлено: 10 окт 2017, 03:18
Ivan
Здравствуйте.

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

Спасибо.