LazReport

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

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

Ответить
RusDeveloper
новенький
Сообщения: 92
Зарегистрирован: 06.04.2016 11:02:43

Сообщение RusDeveloper »

slyubez писал(а):Поддержка дуплекса хотя бы в винде

а что настройка "Двухпроходной отчет" в свойствах отчета в LR не работает?
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Скорее всего имеется ввиду - печать сначала чётных, потом не чётных страниц отчёта.
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

Скорее всего имеется ввиду - печать сначала чётных, потом не чётных страниц отчёта.

Нет. Есть принтеры с поддержкой двусторонней печати. В FR перед печатью отчета можно легко программно управлять дуплекс-режимом такого принтера и печатать часть заданий в дуплекс-режиме (с двух сторон), а часть с одной стороны.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А в чём там управление? Разве это не функционал драйвера принтера?
И если это на уровне построителя - давай такое сделаем в LR.
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

Это функционал принтера и его драйвера. Я не разбирался с сорцами FR, но там в опциях печати есть несколько режимов дуплекса - вертикальный, горизонтальный и отключен. Помимо чисто двусторонних принтеров я встречал еще односторонние МФУ с поддержкой дуплекса - когда устройство сначала выводит лицевые стороны и затем дает команду пользователю передожить кучу листов в лоток подачи и нажать на принтере кнопку продолжения печати.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

slyubez писал(а):Это функционал принтера и его драйвера

Так и LR тогда будет также работать
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

Так и LR тогда будет также работать

Ну если есть возможность это реализовать - было бы здорово. Хотя, честно говоря, как это сделать - не представляю.
На официальном форуме как минимум одно такое пожелание имеется.
http://forum.lazarus.freepascal.org/ind ... ic=20296.0
Со своей стороны готов помочь, к примеру, тестами на оборудовании - на работе есть несколько штук таких принтеров. Насколько мне помнится, такое управление поддерживается в LibreOffice.
Единственное что - с этим надо идти в соответствующую ветку нашего форума, а то мы тут слегка разоффтопились.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Самый простой вариант - при печати добавить возможность отправки на принтер только чётных или только не чётных страниц.
Так?
Или ещё более тонкая настройка нужна?

PS
Администраторы - может действительно вынесете последние сообщения в отдельную тему по LR?
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

Или ещё более тонкая настройка нужна

Ты не понял. Когда принтеру выставляется двусторонняя печать, у него включается так называемый дуплекс-блок - это механическо-электронный узел, который после печати лицевой стороны самостоятельно захватывает лист обратно и печатает на нем же обратную сторону (следующую страницу). Как он ее печатает, зависит от режима - горизонтального и вертикального.
Может быть, я завтра на работе сниму для тебя видео, как это выглядит на деле.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

slyubez писал(а):Ты не понял. Когда принтеру выставляется двусторонняя печать, у него включается так называемый дуплекс-блок - это механическо-электронный узел,

В этом случае надо будет смотреть модуль Printers из состава FPC - может ли он предоставить этот функционал.
slyubez писал(а):Может быть, я завтра на работе сниму для тебя видео, как это выглядит на деле

Не надо, я понял. Просто у меня сейчас не доступен такой принтер.
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

В этом случае надо будет смотреть модуль Printers из состава FPC - может ли он предоставить этот функционал.

Я сейчас попробовал управление дуплексом в FR5 для Lazarus (Windows) через его стандартное превью-окно - все работает. Правда пока в текущей версии есть косяки, но они поправимы.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Покопался в исходниках принтера - реализовать можно (смотрел cups - в винде тем более).
А в чём работа с дуплексом заключется на уровне построителя отчётов?
Режим печати выставляется в свойствах страницы? Или как?
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

А в чём работа с дуплексом заключется на уровне построителя отчётов?
Режим печати выставляется в свойствах страницы? Или как?

Режим дуплекса задается на одно задание на печать, а не на страницу. Думаю, построитель тут ни при чем.
То есть, если мне надо напечатать фрагмент в двустороннем режиме, я указываю в параметрах печати диапазон страниц, число копий и вид дуплекс-режима, после чего отправляю задание на печать. С переворотами страниц, насколько мне понятно, софт принтера разбирается самостоятельно.

Вот так выглядит стандартный диалог печати в приложениях с FR:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 836
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

Подскажите, а как реализовать отчет когда выводится таблица и первая страница по верхнему и нижнему колонтитулу отличается от последующих? Я так понимаю просто настройкой элементов никак, надо делать две страницы и как то(как) говорить страницам с какого по какой диапазон выводить данные?
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Скриптом
На бэнде положить оба комплекта элементов - для первой страницы и последующих.
В скрипте писать чтото типа (например если Memo1 отображаем на первой, а Memo10 на второй и далее)

Код: Выделить всё

begin
  Memo1.Visible:= [PAGE#] = 1;
  Memo10.Visible:=[PAGE#] <> 1;
end
Ответить