Текущий архив: 2002.06.20;
Скачать: CL | DM;
Вниз
Количество копий на печать для 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;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.009 c