Создание многостраничных отчетов с Rich-текст
Создание многостраничных отчетов с Rich-текст
Здравствуйте.
Есть необходимость создать отчет типа договора.
Много страниц с форматированием, списками и пр.
Сам договор есть в RTF-файле.
Попробовал загрузить через "Открыть отчет...".
Результат импорта совершенно неудовлетворительный - непонятные размеры страниц, съехавшие бэнды и текстовые поля за пределами страниц...
Ну да ладно.
Осталось 2 варианта - использовать Rich-текст и загрузить в него весь файл или разбить вручную файл на страницы и на каждой разместить по одному Rich-текст.
В первом случае формирование очень медленное, да и редактировать не удобно.
Во втором случае работает заметно быстрее, но есть неудобства в связи с разбиением на страницы.
Во-первых, в случае модификации отчета (добавлении нового абзаца на первой странице, например) может понадобиться переделка всех страниц отчета.
Во-вторых, в Rich-текст есть поля данных (ФИО, должность, сумма прописью и пр.) с переменной длинной. В этом случае Rich-текст может расти в высоту и выйти за пределы одной страницы.
Кроме того, внутри такого отчета может быть таблица (график погашения кредита, например), после которой нужно продолжить текст договора.
Основная задача в том, что-бы документ получился сплошным, без полупустых страниц. Ну и удобство дизайна, конечно...
Подскажите, пожалуйста, как с вашей точки зрения лучше создавать такие отчеты?
Может в сторону подотчетов смотреть...
Спасибо.
Есть необходимость создать отчет типа договора.
Много страниц с форматированием, списками и пр.
Сам договор есть в RTF-файле.
Попробовал загрузить через "Открыть отчет...".
Результат импорта совершенно неудовлетворительный - непонятные размеры страниц, съехавшие бэнды и текстовые поля за пределами страниц...
Ну да ладно.
Осталось 2 варианта - использовать Rich-текст и загрузить в него весь файл или разбить вручную файл на страницы и на каждой разместить по одному Rich-текст.
В первом случае формирование очень медленное, да и редактировать не удобно.
Во втором случае работает заметно быстрее, но есть неудобства в связи с разбиением на страницы.
Во-первых, в случае модификации отчета (добавлении нового абзаца на первой странице, например) может понадобиться переделка всех страниц отчета.
Во-вторых, в Rich-текст есть поля данных (ФИО, должность, сумма прописью и пр.) с переменной длинной. В этом случае Rich-текст может расти в высоту и выйти за пределы одной страницы.
Кроме того, внутри такого отчета может быть таблица (график погашения кредита, например), после которой нужно продолжить текст договора.
Основная задача в том, что-бы документ получился сплошным, без полупустых страниц. Ну и удобство дизайна, конечно...
Подскажите, пожалуйста, как с вашей точки зрения лучше создавать такие отчеты?
Может в сторону подотчетов смотреть...
Спасибо.
Создание многостраничных отчетов с Rich-текст
Здравствуйте,
Если документ довольно статичен, то можно располагать RichText компоненты прямо на странице.
Если элементы договора меняются динамично по условиям, то можно расположить DataBand компоненты с CountData = 1, расположенные друг за другом.
CanBreak и CanGrow свойства у DataBand и RichText компонентов желательно установить в true.
Это базовые концепции которые работают для простейших отчетов, конвертируемых из Rtf.
Если у Вас какие-то специфические задачи для автоматизации работы с этим договором, дайте о них знать, постараемся помочь.
Спасибо.
Если документ довольно статичен, то можно располагать RichText компоненты прямо на странице.
Если элементы договора меняются динамично по условиям, то можно расположить DataBand компоненты с CountData = 1, расположенные друг за другом.
CanBreak и CanGrow свойства у DataBand и RichText компонентов желательно установить в true.
Это базовые концепции которые работают для простейших отчетов, конвертируемых из Rtf.
Если у Вас какие-то специфические задачи для автоматизации работы с этим договором, дайте о них знать, постараемся помочь.
Спасибо.
Создание многостраничных отчетов с Rich-текст
Спасибо за ответ.
Но в моем случае нет особой специфики или изменяемых данных по условиям...
Интересует принцип «макетирования» подобного рода отчетов.
Вот более простой и конкретный пример.
Отчет имеет следующую структуру:
- полторы страницы Rtf текста
- дальше таблица, которая может перейти на вторую страницу
- дальше сразу после окончания таблицы еще несколько страниц Rtf текста
Подскажите, как быть в таком случае?
Если разбивать отчет на 3 страницы – получается разрыв между таблицей и продолжением отчета.
Все разместить на одной странице не всегда получается, да и медленно работает.
Но в моем случае нет особой специфики или изменяемых данных по условиям...
Интересует принцип «макетирования» подобного рода отчетов.
Вот более простой и конкретный пример.
Отчет имеет следующую структуру:
- полторы страницы Rtf текста
- дальше таблица, которая может перейти на вторую страницу
- дальше сразу после окончания таблицы еще несколько страниц Rtf текста
Подскажите, как быть в таком случае?
Если разбивать отчет на 3 страницы – получается разрыв между таблицей и продолжением отчета.
Все разместить на одной странице не всегда получается, да и медленно работает.
Создание многостраничных отчетов с Rich-текст
Я нашел свойство страницы "Печатать на предыдущей странице".
Не могу добиться адекватной работы.
Если на страницах нет датабэндов - страница с включеной этой опцией не формируется.
Если датабэнды есть - нужные страницы есть но на отдельных страницах и еще вставляются пустые страницы...
Не могу добиться адекватной работы.
Если на страницах нет датабэндов - страница с включеной этой опцией не формируется.
Если датабэнды есть - нужные страницы есть но на отдельных страницах и еще вставляются пустые страницы...
Создание многостраничных отчетов с Rich-текст
На простейшем примере работает...
Буду разбираться...
Буду разбираться...
Создание многостраничных отчетов с Rich-текст
Удалось добиться приемлемого результата для отчета типа «Договор».
1. Разбиваем отчет на страницы (приблизительно)
2. На каждой странице размещаем датабэнд (обязательно) и Rich-текст (можно один) с форматированным текстом. Обращаем внимание на их размеры.
3. На первой странице размещаем заголовок и подвал страницы
4. Для каждой страницы (кроме первой) устанавливаем
Print on Previous Page = true
Print Headers and Footers from Previous Page = true
5. Для каждого датабэнда и Rich-текста устанавливаем
Can Break = true
В этом случае шаблон достаточно удобен для редактирования и отчет нигде не разрывается при наличии динамического содержимого или внесения мелких изменений.
1. Разбиваем отчет на страницы (приблизительно)
2. На каждой странице размещаем датабэнд (обязательно) и Rich-текст (можно один) с форматированным текстом. Обращаем внимание на их размеры.
3. На первой странице размещаем заголовок и подвал страницы
4. Для каждой страницы (кроме первой) устанавливаем
Print on Previous Page = true
Print Headers and Footers from Previous Page = true
5. Для каждого датабэнда и Rich-текста устанавливаем
Can Break = true
В этом случае шаблон достаточно удобен для редактирования и отчет нигде не разрывается при наличии динамического содержимого или внесения мелких изменений.
Создание многостраничных отчетов с Rich-текст
Здравствуйте,
Свойство PrintOnPreviousPage работает для динамического размещения и только с бэндами.
Moжно обойтись и без PrintOnPreviousPage если установить у страницы свойство LargeHeight в true и также свойство LargeHeightFactor позволяет контролировать, во сколько раз должна быть увеличена высота страницы. Высота страницы будет увеличена только в дизайнере и позволит разместить все бэнды с одинаковыми PageHeader и PageFooter на одной странице в шаблоне.
С разрывами страниц помогут справится свойства бэндов NewPageBefore и NewPageAfter.
Спасибо.
Дело в том что статическое размещение (когда бэнды не используются, а компоненты лежат прямо на странице), отличается от динамического (это когда все компоненты располагаются на бэндах).Я нашел свойство страницы "Печатать на предыдущей странице".
Не могу добиться адекватной работы.
Если на страницах нет датабэндов - страница с включеной этой опцией не формируется.
Если датабэнды есть - нужные страницы есть но на отдельных страницах и еще вставляются пустые страницы...
Свойство PrintOnPreviousPage работает для динамического размещения и только с бэндами.
Moжно обойтись и без PrintOnPreviousPage если установить у страницы свойство LargeHeight в true и также свойство LargeHeightFactor позволяет контролировать, во сколько раз должна быть увеличена высота страницы. Высота страницы будет увеличена только в дизайнере и позволит разместить все бэнды с одинаковыми PageHeader и PageFooter на одной странице в шаблоне.
С разрывами страниц помогут справится свойства бэндов NewPageBefore и NewPageAfter.
Спасибо.
Создание многостраничных отчетов с Rich-текст
Большое спасибо!
Large Height - то что надо.
Главное - не бросать в один Rich-текст весь договор, а разбить на несколько контролов.
А то прилично тормозит.
Large Height - то что надо.
Главное - не бросать в один Rich-текст весь договор, а разбить на несколько контролов.
А то прилично тормозит.
Создание многостраничных отчетов с Rich-текст
Здравствуйте,
Дайте знать, если понадобится дополнительная помощь.
Спасибо.
Дайте знать, если понадобится дополнительная помощь.
Спасибо.
Создание многостраничных отчетов с Rich-текст
Да, при загрузке в Rich-текст файла с 10 страницами генерация выполняется ОЧЕНЬ медленно.
Это можно ускорить?
Это можно ускорить?