multi страничный текст.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

multi страничный текст.

Сообщение skobanev » 25.02.2016 00:08:02

Добрый день.
Прошу помочь с LazReport ом.
Есть текст собранный в Memo (TMemo). Например Договор. Собрать можно в принципе как угодно. От HTML до просто текста. Страниц на 10. Его нужно распечатать.
Причем начал копать под LazReport , Но после вечера с бубнами не получилось никоем образом вывести текст с разделением на страницы. (Не могу понять до сих пор как работает этот репорт). Причем вывод баз Данных и текста небольшого объема вполне нормально работает. До этого я дошел.
Начал копать в сторону THTMLViewer, все получилось, собрал текст, Вывожу как на превью печати, так и на принтер. Но получилась загвоздка собрать его под линухами (handle:=GetModuleHandle('comctrl32.dll'); . А Это очень желательно.

Вот и прошу помощи опять вывести сей текст под LazReport.

Либо если такое возможно, что нибудь кросплатформенное с превьювом.
skobanev
новенький
 
Сообщения: 33
Зарегистрирован: 24.02.2016 23:55:01
Откуда: Ростов-на-Дону

Re: multi страничный текст.

Сообщение alexs » 25.02.2016 10:33:25

У объекта MEMO в отчёте поставить признак РАЗРЫВАЕМЫЙ
А ещё лучше формировать текст по абзацам и азацы передавать в виде DataSet-а
Если текст достаточно статичный с небольшими включениями переменных - то проще его сразу набрать напрямую в шаблоне, а по месту подставлять нужные переменные. У меня по такой технологии всякие договора с контрагентыми и подобное формируется.

PS
Ещё на заметку. В винде лучше не использовать штатные старые шрифты, особенно Times - будут проблемы с экспортом в PDF и прочее... Либо новые шрифты из Win7 либо вообще Liberation*.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: multi страничный текст.

Сообщение skobanev » 25.02.2016 19:25:37

Ок. спасибо за совет, сегодня попробую.
Хотя я вообще вышел из положения, и создаю ODT файл, а далее его уже в опеноффисе открываю.
Хотя репорт будет предпочтительней.

Добавлено спустя 8 часов 59 секунд:
alexs писал(а):У объекта MEMO в отчёте поставить признак РАЗРЫВАЕМЫЙ


Подскажи пож. название на англ. )))
skobanev
новенький
 
Сообщения: 33
Зарегистрирован: 24.02.2016 23:55:01
Откуда: Ростов-на-Дону

Re: multi страничный текст.

Сообщение alexs » 26.02.2016 09:32:32

Поравка
У бэнда - а не у мемо
Немного ошибся.
Технология такова:
Ложим на страницу отчёта мастер-бэнд. Выбираем у него виртуальный источник данных с 1-й записью. Ставим у него признак - РАЗОРВАННЫЙ и РАСТЯНУТОЕ
Ложим на него во всю ширину мемо. Ставим у него признаки РАСТЯНУТОЙ и ПЕРЕНОС СЛОВ
В мемо вписываем текст.

Есть одно НО. Если текст большой, то будут тормоза. Поэтому хорошая практика - разделить текст на небольшие блоки (3-4 абзаца) и для каждого блока повторять описанные выше действия. Только для второго и дале можно использовать бэнд типа ДОЧЕРНИЙ, подвязывая их друг к другу в порядке следования.
Если совсем много - делаем многостраничные отчёты. Скриптами легко делается логика формирования - скрывать не нужные по ситуации куски текста.

Кстати - потом это всё добро хорошо выгружается в электронные таблицы (LibreOffice/MSExcell) (за исключением картинок).
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 243

Рейтинг@Mail.ru