Форум: "Основная";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];
ВнизКоличество копий на печать для TQuickRep Найти похожие ветки
← →
Vladimir Gorkov (2002-06-05 07:17) [0]Может кто знает, как программно задать количество копий документа выводимого
на печать из предварительного просмотраTQuickRep
?
Я делал вот так.
QRPreview1->QRPrinter->Copies = 2;
QRPreview1->QRPrinter->Print();
Всё компилится только копия всё равно одна.((
← →
Anatoly Podgoretsky (2002-06-05 07:43) [1]PrinterSettings
Синтаксис у тебя странный, совсем на Паскаль не похож
← →
Vladimir Gorkov (2002-06-05 12:32) [2]Ну да, синтаксис из С++. Потому что я в С++ Builder пишу. Но суть та же.
Если в Инспекторе объектов менять свойсвоPrinterSettings
, то да, количество копий меняется. А из программы не получается. Дело в том чтоTQRPrinterSettings
это класс. Объект этого классаPrinterSettings
прописан в классеQRPrinter
, НО в разделе private. Т.е. он не доступен напрямую, например так
QRPreview1->QRPrinter->PrinterSettings
Т.е. свойства объектаPrinterSettings
изменяются внутренними функциями класса. При присвоенииQRPreview1->QRPrinter->Copies
значения, вызывается функцияSetCopies
классаTQRPrinter
, которая должна менять значениеCopies
классаTQRPrinterSettings
. Но этого не происходит.
Вот до чего я докопался.
← →
Lusha (2002-06-05 12:40) [3]Нда-а... Нарыл много... А как насчет TQuickReport.PrinterSettings.Copies? =)
← →
Anatoly Podgoretsky (2002-06-05 12:52) [4]Не там ты роешь, рой короче, как сказал Lusha, а к приватным лезть не зачем, и еще на всякий случай QRPrinter это не один объект, их может быть много, а работать нужно только с нужным, прямой путь через QuickReport.PrinterSettings
← →
Vladimir Gorkov (2002-06-06 05:39) [5]Ну да, это бы прокатило если бы я имел доступ к объекту
QuickReport
. Вся фишка в том что я не знаю из какогоQuickReport
вызвана мояQRPreview
. У меня создана моя превьюшка. С моими кнопочками, моим видом. Там совершаются некие шаманские действия (в примерах нарыл) и она подменяет стандартную превьюшку. Существует множество отчетов и они в нужное время кидают себя в мою превьюшку. А из самого объекта превью я даже не знаю какойQuickReport
вызвал её.
Когда нужно показать какой нибудь отчет, это делается примерно нак:
QRForm_LastLayer = new TQRForm_LastLayer(this);
QRForm_LastLayer->QuickRep1->OnPreview = Form_main->CustomPreview;
QRForm_LastLayer->QuickRep1->Preview();
Application->ProcessMessages();
delete QRForm_LastLayer;
Вот так.
← →
Lusha (2002-06-06 09:34) [6]А завести в своей форме предварительного просмотра указатель на вызывающий ее отчет и инициализировать его при ее вызове это так сложно... Практически невозможно, я думаю... :)
← →
Vladimir Gorkov (2002-06-07 08:33) [7]Если бы так можно было сделать, то я бы так давно сделал. Но так не сделать, потому что не я инициализирую обект соего preview, а это делает TQuickRep. Вот же код выше я приводил:
QRForm_LastLayer->QuickRep1->OnPreview = Form_main->CustomPreview;
// Подмена функции QuickRep1.OnPreview своей
QRForm_LastLayer->QuickRep1->Preview();
// ТеперьPreview()
вызывает мою функцию. Конечно было бы красиво, где-нибудь в конструктор сунуть объектQuickRep1
. Но не получается так.((
Видимо придётся делать не очень красиво. Заводить гловальный объектTQuickRep
и инициализировать его перед вызовомPreview().
Добавляетс ещё одна строчка везде где создается предварительный просмотр.((
Ну ничего. Пара десятков отчетов - можно подредактировать.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.024 c