Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.012 c
1-65133
MIRALATTE
2002-06-07 12:00
2002.06.20
Кто-нибудь ставил иконку в трей с помощью компонента в Windows95


14-65210
Sam08
2002-05-17 15:18
2002.06.20
Эй Ну кто из вас наладил продажу своей программы в сети


3-64907
Garry
2002-05-25 15:28
2002.06.20
Как узнать количество строк в наборе данных?


1-65031
MSergey
2002-06-09 16:20
2002.06.20
TListView


7-65262
daos
2002-03-22 10:15
2002.06.20
Идея! К вопросу о крысе (как ее обнаружить).