Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];

Вниз

DX: QuickReport351. Проблема с подсчетом страниц перед просмотром   Найти похожие ветки 

 
MaxSit   (2003-04-17 19:01) [0]

Нужно перед просмотром документа знать количество страниц в сформированном отчете.

Раньше делал так:
Form1.QuickRep1.Prepare;
PageCount:=Form1.QuickRep1.QRPrinter.PageCount;
Form1.QuickRep1.Preview; // при формировании использую PageCount

Но, когда отчеты стали по 200-300 страниц, то использовать
Prepare стало невыносимо, т.к. он выполняется по времени столько же, что и Preview. На этом сайте нашел: <<Как в QuickReports вставить "Страница № из ">>. Там предлогается использовать:
TQRSysData.Data:=qrsPageCount;
, но у меня qrsPageCount нет, глянул в более старые версии QR, он там тоже отсутствует.

Какие будут идеи. Заранее спасибо.


 
Anatoly Podgoretsky   (2003-04-17 19:37) [1]

Зато есть PageCount у QrPrinter, а вот откуда они взяли qrsPageCount, наверно в бреду.
И скажи щачем ты делаешь QuickRep1.Prepare; так тратишь время.


 
MaxSit   (2003-04-17 19:54) [2]

Дело в том, что если сделать так:

Form1.QuickRep1.Tag:=Form1.QuickRep1.QRPrinter.PageCount;
Form1.QuickRep1.Preview;

вылетает ошибка AV на первой строчке.

Так работает:
//Form1.QuickRep1.Tag:=Form1.QuickRep1.QRPrinter.PageCount;
Form1.QuickRep1.Preview;


 
MaxSit   (2003-04-17 19:58) [3]

В догонку:
Form1.QuickRep1.Tag - это и есть моя переменная PageCount


 
Anatoly Podgoretsky   (2003-04-17 20:28) [4]

А зачем тебе отдельная переменная, когда значение прямо в QuickRep1.QRPrinter.PageCount; в любой момент напрямую доступно.


 
MaxSit   (2003-04-17 20:38) [5]

Именно для того, чтобы во время Preview заполнить на каждой странице: "Страница PageNo из PageCount".
Если это заполнение вешать на событие печати самого QRLabel, то будем видеть следущее:

Страница 1 из 1
Страница 1 из 2
Страница 1 из 3
...
Страница 1 из 100

и только после формирования всего документа мы уже получим реальный QuickRep1.QRPrinter.PageCount.


 
Anatoly Podgoretsky   (2003-04-17 20:59) [6]

Эту часть у тебя выполняет Prepare
А с QRPrinter надо быть поострожнее, он во многих местах устанавливается в NIL, поэтому обращение к нему очень опасно.


 
Anatoly Podgoretsky   (2003-04-17 21:03) [7]

У тебя дважы/трижды будет происходить формирование страниц, prepare, preview, print
Потери времени ужасны.


 
MaxSit   (2003-04-17 21:49) [8]

QR карявый, я конечно согласен, ну нет пока других вариантов. А QR использую давно, мы с Вами (Anatoly Podgoretsky) уже не первый раз по этому поводу дискусируем. Переделывать весь проект под новый генератор пока нет возможности.
А клиенты требуют, чтобы на каждой странице была подпись количества страниц и текущая страница, и где-то они правы, это удобно.


 
Anatoly Podgoretsky   (2003-04-17 22:26) [9]

MaxSit © (17.04.03 21:49)
Нельзя чказать что корывый, но ты должен понимать что делаешь, в товем случае явно QRPrinter на данной стадии равен NIL-
Вот что сказано в FAQ

QuickRep1.Prepare;
QuickRep1.ReportTitle := "This report has " +
IntToStr(QuickRep1.QRPrinter.PageCount) + " pages";
QuickRep1.QRPrinter.Free;
QuickRep1.QRPrinter := nil;

QuickRep1.Preview;

Это должно тебе помочь


 
MaxSit   (2003-04-17 22:40) [10]

Да, но опять таки:
QuickRep1.Prepare;

А так хочется без него.


 
Johnmen   (2003-04-18 00:04) [11]

Чтобы заранее знать общее количество страниц, надо сгенерить отчет. Так ? Так. Значит предварительный прогон неизбежен.
Не смотря на то, что образ отчета мы уже имеем, он не совсем нас удовлетворяет - в нем нет указания на общее число страниц. Значит мы должны его сгенерить заново, т.е. второй прогон также неизбежен...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-513
Wolverin
2003-04-20 22:22
2003.05.01
Работа с другим приложением


14-708
paranoid
2003-04-12 20:10
2003.05.01
Помогите! Очень срочно! как отловить все, что пользователь вводит


3-404
Mefisto
2003-04-11 10:15
2003.05.01
SQL в DBF


7-797
Zyb
2003-03-04 18:10
2003.05.01
Как принять тональный сигнал с телефона


3-408
zx
2003-04-11 15:03
2003.05.01
BDE различных версий





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский