Отображение данных в подвале страницы и подвале отчета
Здравствуйте.
Есть источник данных "Info", который возвращает 1 запись.
В шаблоне отчета есть три бэнда:
- заголовок отчета
- данные
- подвал отчета
При размещении текстовых полей в заголовке отчета и в данных все отображается корректно, а в подвале отчета поля получаются пустые.
Так должно быть?
Я понимаю такую логику, но мне кажется, что в более ранних версиях такой вариант работал...
Есть источник данных "Info", который возвращает 1 запись.
В шаблоне отчета есть три бэнда:
- заголовок отчета
- данные
- подвал отчета
При размещении текстовых полей в заголовке отчета и в данных все отображается корректно, а в подвале отчета поля получаются пустые.
Так должно быть?
Я понимаю такую логику, но мне кажется, что в более ранних версиях такой вариант работал...
Комментарии
Строго говоря, размещать поля источника данных надо только на дата-бэнде. Во всех остальных местах состояние источника данных может быть неопределенным, т.к. его инициализация происходит при печати бэнда "Данные" либо при первой попытке напечатать данные. В Вашем случае происходит следующее:
- при печати данных на заголовке источник данных не инициализирован. Эту ситуацию FastReport обрабатывает корректно, инициализируя источник.
- при печати бэнда "Данные" все происходит в обычном порядке: инициализация источника и перебор записей, пока не достигнут конец данных.
- в момент печати подвала источник данных находится в состоянии "EOF". Печатаются пустые данные.
Однако, если включить двойной проход у отчета, данные перестанут печататься и на заголовке отчета. Т.к. в этот момент источник инициализирован и находится в состоянии EOF после первого прохода.
В Вашем случае, если источник имеет только одну запись, разместите всю информацию на бэнде "Данные". Если нужно, добавьте к нему несколько дочерних (Child) бэндов.
В Стимулсофте, кстати, тоже.
И пользователей тоже понять можно. Запись всего одна и разместить поля в заголовке и подвале отчета вроде как логично.
Нет, костылей не надо.
Я просто хотел разобраться и ни в коем случае не прошу делать того, что испортит стройность системы.
Спасибо за ответ.
private void Page1_StartPage(object sender, EventArgs e)
{
Data1.InitDataSource();
}
Вопрос закрыт.
Если можно так выразиться, кто впереди, а кто плетется в хвосте?
Разумеется, с вашей субъективной точки зрения, как человека, знающего все три продукта изнутри.
Но вы же все таки сказали о "сильном отличии и от Стимула".
Я хотел бы от вас получить хоть какую то сравнительную оценку FR.NET и Stimul.NET.
Поясните это как можете.
От оценок воздержусь. Вы наверняка использовали оба продукта и сами сможете оценить, "кто кого". Составьте критичный для Вас список (как-то: удобство работы, цена, наличие нужных фич, ...) и вперед.
Это может говорить о разном.
Либо то, что Стимул популярнее FR, либо что FR прочнее, и стало быть за популярностью не гонится в ущерб надежности и стабильности.
Хотя ...
Это может вообще ни о чем не говорить.