Страница 1 из 1

Печать очереди напрямую

Добавлено: 11 Ноябрь 2013, 15:59
optron
С55 EE АВС
Добрый день.
Возник вот какой вопрос:

Формируем очередь для печати. Ну, например PrintQueue.
Сейчас вывожу её на печать стандартным репортом через временный tps файл.
Всё бы хорошо, но этот tps файл абсолютно не нужен - открывай его, записывай, выводи на печать и стирай. Причем, абсолютно ненужное торможение при add записей в файл.
Хотелось бы как то сформировать стандартный репорт, но вместо файла использовать PrintQueue. Возможно ли это?

Заранее спасибо.

Re: Печать очереди напрямую

Добавлено: 11 Ноябрь 2013, 16:22
Алексей- Софт-Центр
Добрый день!
Создай один файл с одной записью.
Его используй в качестве основного файла в схеме процедуры report.
В embed before print detail
поставь цикл работы с очередью и print(rpt:detail)
ну и другие print
В конце этой вставки :
if 2=3 then
Во вставку: after print detail
end

Алексей

Re: Печать очереди напрямую

Добавлено: 11 Ноябрь 2013, 17:16
optron
Спасибо. Буду пробовать.

Re: Печать очереди напрямую

Добавлено: 12 Ноябрь 2013, 12:42
kreator
А если так. Очередь всё равно ведь на основе какой-то таблицы. В репорте задаём эту таблицу, а в точке вставки Take Record сделать обращение к очереди.

Re: Печать очереди напрямую

Добавлено: 12 Ноябрь 2013, 12:57
optron
Очередь на основе MySQL таблицы.
Кстати, после селекта RECORDS(Sqlfile)=0. На самом деле, всё вытягивается нормально.
Может можно как то узнать кол-во записей в Sqlfile без тупого перебора со счетчиком?

Re: Печать очереди напрямую

Добавлено: 12 Ноябрь 2013, 14:21
kreator
У меня FireBird сейчвс. RECORDS(Sqlfile) работает без проблем. Может Sqlfile к этому времени закрыт?
Можно ещё сделать так:
Sqlfile{prop:SQL} = 'count(*) from MyFile'
next(Sqlfile)
Только в Sqlfile первое поле должно быть long.