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

Вниз

Как узнать, какие Band-ы напечатались?   Найти похожие ветки 

 
И. Павел ©   (2011-04-08 11:24) [0]

Здравствуйте.

Моя программа использует QReport для печати отчета. Отчет состоит из title band и цепочки связанных с ней ChildBand.
После того, как пользователь напечатает некоторые страницы отчета, нужно удалить соответствующие band-ы (и соответствующие им записи в таблице).

Подскажите, пожалуйста, можно ли как-нибудь узнать, какие band-ы были напечатаны?
Считается, что размеры всех band-ов достаточно малы, чтобы не появился тот, который займет больше одной страницы (каждый band - это пропуск).

Заранее спасибо.

PS: пытался найти свойство, говорящее, на какой странице лежит band, но не нашел. Предполагаю, что его и нет, ведь можно просто сменить настройки принтера, ширину полей, и band разместится уже на другой странице.


 
И. Павел ©   (2011-04-08 11:28) [1]

У бандов есть свойство After print.
Извиняюсь за глупый вопрос (который раз уже долго с чем-то мучаюсь и нахожу решение почти сразу, как задам вопрос на форуме :)


 
И. Павел ©   (2011-04-08 11:45) [2]

НЕТ, After Print не помогает... Это событие срабатывает, когда band подготовлен для печати а не напечатан. Например, при вызове preview печатаются все банды.

Так что мой вопрос все еще в силе.


 
clickmaker ©   (2011-04-08 11:59) [3]

> как пользователь напечатает некоторые страницы отчета, нужно
> удалить соответствующие band-ы (и соответствующие им записи
> в таблице).

а после прочтения отчет сжечь? )


 
И. Павел ©   (2011-04-08 12:03) [4]

> а после прочтения отчет сжечь? )

Просто будет буфер печати. Туда будут записывать все пользователи и при необходимости один пользователь сможет распечатать весь буфер или некоторые страницы. Задачу поставили жестко: оператор выбирает не какие печыатать band-ы (пропуска), а именно - какие номера страниц...


 
И. Павел ©   (2011-04-08 13:02) [5]

Придумал один вариант: просто после вызова QuickReport.print буду ждать, чтобы прошло несколько событий EndPage, и, когда пойму, что сейчас начали генерироваться страницы, которые будут печататься, буду анализировать - какие band напечатались по событию AfterPrint этих band. Но этот метод мне не нравится, т.к. отслеживание печати будет вестись по косвенным признакам, и так можно запросто нарваться на какую-нибудь ошибку.

Буду рад, если кто-нибудь порекомендует другой способ.


 
clickmaker ©   (2011-04-08 13:21) [6]

Sender.ParentReport.State = qrPrint ?


 
b z   (2011-04-08 13:31) [7]

Так физически может и не распечатать, как тогда быть ? :)


 
И. Павел ©   (2011-04-08 13:37) [8]

> [6] clickmaker ©   (08.04.11 13:21)

У меня во время всех сообщений AfterPrint состояние отчета = qrAvailable, поэтому даже во время печати такой код не заносит номера нужных band в memo:

procedure TBufferForm.TitleBand1AfterPrint(Sender: TQRCustomBand;
 BandPrinted: Boolean);
begin
 if Sender.ParentReport.State = qrPrint then
   Memo1.Lines.Add("1");
end;


> [7] b z   (08.04.11 13:31)

Это не важно. Если не распечатается - еще раз в буфер занесут.


 
Anatoly Podgoretsky ©   (2011-04-08 14:12) [9]

> clickmaker  (08.04.2011 11:59:03)  [3]

Съесть


 
Anatoly Podgoretsky ©   (2011-04-08 14:14) [10]

> b z  (08.04.2011 13:31:07)  [7]

ВЕБ камера


 
И. Павел ©   (2011-04-11 08:58) [11]

Проблема все еще актуальна.
Если кто-нибудь знает, пожалуйста, подскажите решение.

Пока что думаю, что скорее всего не буду заниматься ерундой, отслеживая косвенные показатели QReport (а то это уже сродни варианту с веб-камерой :), и если не найду нормального способа решения задачи - буду просто рисовать на контексте принтера (все равно все динамически генерировать придется).


 
И. Павел ©   (2011-04-11 16:09) [12]

Я додумался, как определить - на какой странице какой band расположен!!!

На каждый band я положил компонент TQRSysData и установил ему свойство Data = qrsPageNumber. После Print будет ясно, какой band какой странице принадлежал!

Уж думал что не придумаю способ :)



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

Форум: "Прочее";
Текущий архив: 2011.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
15-1302506523
DiamondShark
2011-04-11 11:22
2011.07.31
Modernization, innovation, vperde!


2-1303825966
Gu
2011-04-26 17:52
2011.07.31
Глубина цвета картинки


11-1236071712
rvi
2009-03-03 12:15
2011.07.31
Запись в log


2-1303709793
prodex
2011-04-25 09:36
2011.07.31
Обращение к БД InterBase из разных потоков


15-1302604376
БарЛог
2011-04-12 14:32
2011.07.31
Антиусилитель wi-fi сигнала





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