Автоматическое увеличение высоты графика
Автоматическое увеличение высоты графика
Есть отчёт, в котором есть график и при больших данных по Y оси, хочется чтобы он увеличивался.
Проблема в том, что DataBand на отчете также увеличивается по высоте. Как сделать, чтобы отчёт шел после того, как DataBand будет завершен в построении.
В какой элемент его можно поместить? Пробовал запихнуть отчёт в DataBand, FooterBand, EmptyBand и т.д. В них он нормально по высоте не отображается. А отображается он нормально, когда лежит просто на странице, но тогда будет пересечение DataBand и Chart визуально. Была идея сдвигать значение Top (сверху) у графика на основании высоты DataBand, но так и не получилось получить фактическую высоту DataBand на странице после того, как он заполнен данными, всегда возвращается высота из дизайнера.
Проблема в том, что DataBand на отчете также увеличивается по высоте. Как сделать, чтобы отчёт шел после того, как DataBand будет завершен в построении.
В какой элемент его можно поместить? Пробовал запихнуть отчёт в DataBand, FooterBand, EmptyBand и т.д. В них он нормально по высоте не отображается. А отображается он нормально, когда лежит просто на странице, но тогда будет пересечение DataBand и Chart визуально. Была идея сдвигать значение Top (сверху) у графика на основании высоты DataBand, но так и не получилось получить фактическую высоту DataBand на странице после того, как он заполнен данными, всегда возвращается высота из дизайнера.
Re: Автоматическое увеличение высоты графика
Добрый вечер!
Предположу вам вариант на первой странице оставить всё, как есть, и создать вторую страницу, на который поместите ваш график.
Таким образом, сначала рендерится первая страница, а затем вторая с графиком.
Предположу вам вариант на первой странице оставить всё, как есть, и создать вторую страницу, на который поместите ваш график.
Таким образом, сначала рендерится первая страница, а затем вторая с графиком.
Re: Автоматическое увеличение высоты графика
Леонид, спасибо. Как вариант.
Тогда другой вопрос, если график строится на одной странице, то есть высота страницы изменяется и появляются разрывы, которые Stimulsoft отображает синим цветом (рамка и текст).
Можно это как-то отключить? Либо есть возможность построить график, чтобы он динамические изменялся по высота и разбивался по отдельным страницам, с нормальной визуализацией, чтобы нигде переход на другую страницу ничего не обрезал?
Тогда другой вопрос, если график строится на одной странице, то есть высота страницы изменяется и появляются разрывы, которые Stimulsoft отображает синим цветом (рамка и текст).
Можно это как-то отключить? Либо есть возможность построить график, чтобы он динамические изменялся по высота и разбивался по отдельным страницам, с нормальной визуализацией, чтобы нигде переход на другую страницу ничего не обрезал?
Re: Автоматическое увеличение высоты графика
Здравствуйте.
Можно использовать дополнительные скипты для подсчёта необходимого количества страниц. Получать количесто строк для вывода и делить их для примера на 10. Потом отобразать по 10 записей на странице, положив чарт на бэнд данных и задав у бэнда свойство CountData. Также установив New Page Before = True. Значения на чарте можно отображать с помощью фильтров.
Ну или изменить размер страницы в событии End Render отчёта с помощью следующего кода:
По вашему первому вопросу про расположение чарта, его лучше положить на Footer бэнд.
Спасибо.
Можно использовать дополнительные скипты для подсчёта необходимого количества страниц. Получать количесто строк для вывода и делить их для примера на 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;
}
Спасибо.
Re: Автоматическое увеличение высоты графика
HighAley, спасибо, а как отключить отображение границы страницы, в прошлом посте?
Re: Автоматическое увеличение высоты графика
Здравствуйте.
К сожалению, убрать границы сегментов нельзя.
Вы можете использовать код в событии End Render и сегментов страниц не будет.
Спасибо.
К сожалению, убрать границы сегментов нельзя.
Вы можете использовать код в событии End Render и сегментов страниц не будет.
Спасибо.
Re: Автоматическое увеличение высоты графика
Через End Render получилось. Спасибо.
Re: Автоматическое увеличение высоты графика
Здравствуйте.
Всегда рады помочь.
Дайте знать, если вам понадобится ещё какая-нибудь помощь.
Спасибо.
Всегда рады помочь.
Дайте знать, если вам понадобится ещё какая-нибудь помощь.
Спасибо.