Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: [HELP] BCB5, QuickReport 4 - изменить orientation в prview  (Прочитано 14628 раз)
0 Пользователей и 1 Гость смотрят эту тему.
baranov.eu
Интересующийся

lv
Offline Offline

« : 15-01-2009 15:32 » 

Итак, в превью репорта, при изменении настроек принтера (ориентация страницы) не перерисовывается изображение предпросмотра. Каким методом это можно сдалать?  (со всякими Update не получилось). Пытаюсь сделать это в событии QReport OnGetPrinterSettings
 А черт его знает...



Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 15-01-2009 15:54 » 

Тут не подскажу - я пользуюсь сторонним компонентом Crystal Reports - много мощнее.

Посмотри в хелпе - что там говорится. Может метод Preview попробовать?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
baranov.eu
Интересующийся

lv
Offline Offline

« Ответ #2 : 15-01-2009 16:28 » 

Тут не подскажу - я пользуюсь сторонним компонентом Crystal Reports - много мощнее.

Посмотри в хелпе - что там говорится. Может метод Preview попробовать?

Оно показывается по превью... вызов внутри - ексепшн (что логично)хелпы почитал... погуглил Улыбаюсь форум - последнее что делаю как правило Улыбаюсь


Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 15-01-2009 16:52 » 

baranov.eu, а PrinterSettings.ApplySettings() пробовал?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
baranov.eu
Интересующийся

lv
Offline Offline

« Ответ #4 : 16-01-2009 08:57 » new

baranov.eu, а PrinterSettings.ApplySettings() пробовал?

попробовал по-разному.
1. this->QReport->PrinterSettings->ApplySettings( this->QReport->QRPrinter );
откровенный бред получаецца - не выводит странички превью.
2. TPrinterSettings *settings =  dynamic_cast<TPrinterSettings *>( Sender );
settings->ApplySettings( );
ничего не происходит.

я на самом деле логики происходящего не понимаю.

Записан
baranov.eu
Интересующийся

lv
Offline Offline

« Ответ #5 : 19-01-2009 14:17 » 

Ну частично я раскопал... итак у меня получилось следующее:
Код:
void __fastcall QReportGetPrinterSettings(TObject *Sender,
      bool &Cancel, Pointer DevMode)
{
//  ........
        QReport->QRPrinter->Orientation = QReport->Page->Orientation;
//  ........
        TQRPreview *preview = dynamic_cast<TQRPreview *>(this->QReport->QRPrinter->Client);
        preview->UpdateZoom();
// ............
}

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

нормальный результат только если закрыть превью, потом открыть его снова.

есть у кого еще идеи?Не понял

Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 19-01-2009 14:41 » 

Закрыть/открыть - это ресурсоемко? Если нет - используй.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
baranov.eu
Интересующийся

lv
Offline Offline

« Ответ #7 : 19-01-2009 14:47 » 

хе.... как это сделать изнутри формы репорта?
Hide/Show?

боюсь не прокатит.......

Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 19-01-2009 16:45 » 

Может использовать ModalResult и внешнюю обработку кода?

Вообще, мануал удивил своей пустотой - очень мало информации. Должен быть какой-нибудь банальный Refresh...
« Последнее редактирование: 19-01-2009 16:46 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
baranov.eu
Интересующийся

lv
Offline Offline

« Ответ #9 : 20-01-2009 07:20 » 

Может использовать ModalResult и внешнюю обработку кода?

Вообще, мануал удивил своей пустотой - очень мало информации. Должен быть какой-нибудь банальный Refresh...

я тоже так думал... вот что сначала пробовал (поочереди):

Код:
        //this->Update();
        //this->QReport->Repaint();
        //this->QReport->Refresh();
        //this->QReport->Paint();
        //this->QReport->Modify();
        //this->QReport->Print();
        //this->QReport->Free();
        //this->QReport->Preview();

а потом еще:
Код:
        TQRPreview *preview = dynamic_cast<TQRPreview *>(this->QReport->QRPrinter->Client);
        preview->UpdateZoom();
        preview->PreviewImage->Repaint();
        preview->Repaint();
        preview->UpdateImage();

либо ошибка, либо ничего. ТОлько preview->UpdateZoom(); немного приблизил к решению.

Ну чтож... еще пол дня мозгового штурма, и нафиг это все.... отпишусь заказчику как есть.

Записан
baranov.eu
Интересующийся

lv
Offline Offline

« Ответ #10 : 20-01-2009 07:22 » 

по поводу ModalResult:

какая там логика должна быть то? закрывать форму изнутри возвращая что-то специфическое и открывать ее заново?

Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 20-01-2009 09:06 » 

по поводу ModalResult:

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

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines