Страница 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()
Спасибо.