Ситуация: каждый из пользователей сети формирует пакет документов
для печати на сетевом принтере(10-15 страниц). При этом
формирование растянуто по времени: что-то сделал - направил на
печать 3-4 страницы, потом еще что-сделал - остальные 10-12
страниц. На принтер, ес-но, все страницы должны придти одним
пакетом, чтобы не было путаницы при разборке.
Вопрос: как в проге на Кларионе (С55, ШВС) оформить это как
одно задание, чтобы юзер по окнчании ввода/выборки нажал бы
кнопочку ПЕЧАТЬ ЗАДАНИЯ и все сформироавнные страницы одним
пакетом печатались бы на принтере.
--
Best regards,
morkovin mailto:morkovin@interdacom.ru
(Добавление)
А что если сохранять все страницы в wmf а потом их разом печатать ?
Доработать стандартный ReportPreview.
--
Best regards,
Max mailto:Makc@istnet.ru
(Добавление)
На идейном уровне достаточно просто, но реализация будет гиморной все
же... Нужно при генерации каждой части пакета не доводить дело до
печати - но после формирования "подотчета" и ДО его закрытия
скопировать содреджимое его Preview-очереди, скопировать wmf-файлы, на
которые указывает эта очередь (можно попробовать просто переименовать
- видимо после этого клаша не сможет удалить их после закрытия
отчета) ну и подменить содержимое очереди на новые имена wmf-ов.
По нажатию кнопки пактной печати открываем фиктивный отчет - пустышка,
можно вида:
Код: Выделить всё
DummyPrintPreviewQueue QUEUE,PRE
DummyPrintPreviewImage STRING(80)
END
DummyReport REPORT,AT(10,10,100,100),PRE(DummyRPT),FONT('Arial',10,,),MM
detail DETAIL
END
END
PrintPreviewQueue - подготовленная к печати "интегрированная" очередь ):
Код: Выделить всё
!....
Loc:lLoopIndex LONG,AUTO
!...
CODE
! ...
OPEN(DummyReport)
DummyReport{PROP:Preview} = DummyPrintPreviewQueue
DummyReport{PROP:Landscape} = Report{PROP:Landscape}
LOOP Loc:lLoopIndex = 1 TO RECORDS(PrintPreviewQueue)
PRINT(DummyRPT:detail)
ENDPAGE(DummyReport)
END
FREE(DummyPrintPreviewQueue)
LOOP Loc:lLoopIndex = 1 TO RECORDS(PrintPreviewQueue)
GET(PrintPreviewQueue,Loc:lLoopIndex)
DummyPrintPreviewQueue = PrintPreviewQueue
ADD(DummyPrintPreviewQueue)
END
DummyReport{PROP:FlushPreview} = True
CLOSE(DummyReport)
FREE(DummyPrintPreviewQueue)
RETURN
Best regards,
Vadym mailto:vadim@softcreator.com
ICQ: 82308757
(Добавление)
Я склоняюсь к мысли, что это надо делать на уровне операционки.
Т.е. до начала генерации первой части отчета выдать команду типа
ОТЛОЖЕННАЯ ПЕЧАТЬ (может "net printer ... /pause" (???)), а после
окончания - "net printer ... /resume"). Что скажут знатоки ОС?
Буду пробовать разн. варианты.
--
Best regards,
morkovin mailto:morkovin@interdacom.ru
Волгоград
Написал: ClaList(2)