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

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

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

Ответить
skobanev
новенький
Сообщения: 33
Зарегистрирован: 24.02.2016 22:55:01
Откуда: Ростов-на-Дону
Контактная информация:

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

Сообщение skobanev »

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

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

Либо если такое возможно, что нибудь кросплатформенное с превьювом.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

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

PS
Ещё на заметку. В винде лучше не использовать штатные старые шрифты, особенно Times - будут проблемы с экспортом в PDF и прочее... Либо новые шрифты из Win7 либо вообще Liberation*.
skobanev
новенький
Сообщения: 33
Зарегистрирован: 24.02.2016 22:55:01
Откуда: Ростов-на-Дону
Контактная информация:

Сообщение skobanev »

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

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


Подскажи пож. название на англ. )))
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

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

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

Кстати - потом это всё добро хорошо выгружается в электронные таблицы (LibreOffice/MSExcell) (за исключением картинок).
Ответить