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

Databand как Header

Добавлено: 06 дек 2011, 00:02
Edvard
Добрый день.

Возникла следующая проблема.
Требуется выводить одинаковые данные на каждой странице отчета в качестве заголовка.
Т.е. как бы поместить Databand на PageHeader. Но этого сделать не получается.
Как же это должно быть сделано?


Databand как Header

Добавлено: 06 дек 2011, 06:33
Aleksey
Здравствуйте,

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

Спасибо.


Databand как Header

Добавлено: 06 дек 2011, 07:48
Edvard
Здравствуйте.

Тут тестовые данные вам ни к чему. Создавать их довольно утомительно.
Речь не о баге. Нужна идея.

Есть такой отчет. Находится во вложении. В нем все работает, кроме одного.
Содержимое Databand dbComments выводится только на первой странице. А на остальных страницах его нет. Мне нужно, чтобы он повторялся на всех страницах.Так же как повторяется содержимое PageHeaderBand1 на всех страницах.
Ради этого повторения там я наворотил ChildBand1 и Container1. Но эти два последних не дают эффекта. Что с ними что, без без них записи из dbComments выводятся однократно.

В этом и вопрос. Как же дублировать на всех страницах Databand dbComments ?

Databand как Header

Добавлено: 06 дек 2011, 09:22
Aleksey
Здравствуйте,

В данном случае, если у источника данных CommentsData только одна запись, то вы можете просто расположить данные на Pageheader-е, без компонента Databand(будет всегда отображаться только первая запись из истоника). Если записей несколько, то, в данном случае, можно использовать переменные, в которые занести необходимые данные и их разместить в хэдере.

Спасибо.


Databand как Header

Добавлено: 06 дек 2011, 09:46
Edvard
В источнике CommentsData несколько записей. И сколько именно, заранее неизвестно. От нуля до десяти.
Соответственно оба способа не проходят. По правде говоря, я уже пробовал это.
Более того, сейчас отчет как бы автономный. Из основного приложения никаких данных, кроме ConnectionString не получает.Хотелось бы, чтобы он и дальше оставался таким.


Databand как Header

Добавлено: 07 дек 2011, 11:02
Aleksey
Здравствуйте,

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

Спасибо.

Databand как Header

Добавлено: 09 дек 2011, 18:52
Edvard
Добрый день.
Спасибо за пример.
Но к сожалению я не смог его его изучить т.к. у меня старая версия StimulReports от 2007г. На новую начальство все никак не раскрутится. Когда я открываю этот файл в своем дизайнере, то он не понимает какой компонент расположен на странице первым. Пишет Undefunite и соответственно не работает.

Я, вроде, нашел решение ч\з задницу. Оно мне сильно не нравится, но кое-как работает.
Суть решения такова. Обрабатывается событие dbComments.AfterPrintEvent таким образом.

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

if (txtHeaderComments.TextValue=="")
{
	{txtHeaderComments.TextValue =CommentsData.TrailerComments;}
}
else
{
	txtHeaderComments.TextValue=txtHeaderComments.TextValue + "\n" + CommentsData.TrailerComments;
}
Изначально, поле txtHeaderComments расположеное на PageHeader1, пустое.
При печати на первой странице из dbComments происходит накопление строк в txtHeaderComments.
И на последующих страницах печать идет уже из txtHeaderComments.

Получается как на скриншоте ниже.
Может быть посоветуете, что тут можно сделать правильнее.

Databand как Header

Добавлено: 12 дек 2011, 09:44
Aleksey
Здравствуйте,

В вашей версии, как вариант, вы можете использовать следующее решение:
- на PageHeader-е разместить контейнер на который положить датабэнд с dbComments,
- установить свойство CanGrow в true,
- в событии BeforePrint страницы использовать следующий код:
dbComments.First()

Спасибо.