Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-65035
dkDimon
2002-06-08 22:24
2002.06.20
TListView & Win XP


1-65129
Вовчик
2002-06-06 02:17
2002.06.20
Перерисовка Canvas


14-65232
Alx2
2002-05-17 14:23
2002.06.20
Освежим воспоминания?


1-65072
Alexy
2002-06-10 12:22
2002.06.20
Как распечатать TImage???


1-65022
Igorek
2002-06-08 23:38
2002.06.20
Как из TCommandClass вытянуть реальный класс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский