:: Главная :: Решения :: Статьи :: Проект "Русский help" :: Файловый архив :: Фотоальбом :: Ссылки ::
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  


Форумы  :: FAQ FoxPro

Как отобразить окно предварительного просмотра в As Top-Level форме
Дата: 01.02.06 22:55:43 ОтветитьЦитировать

Вопрос

Приложение написано на базе As Top-Level форм. При вызове отчета на предварительный просмотр он вообще не появляется. В чем причина? Как можно отобразить окно предварительного просмотра.

Причина

Для версий до Visual FoxPro 6 включительно, по умолчанию, окно предварительного просмотра открывается In-Screen. Т.е. внутри основного окна FoxPro.

Решение

Необходимо перенаправить вывод окна предварительного просмотра в окно, созданное на базе As Top-Level формы. Это стало возможным только с появлением опции IN WINDOW в Visual FoxPro 6.

Пример решения описан в статье Q188887, на сайте Microsoft

How to display the Print Preview window in a top-level form in Visual FoxPro

Суть приведенного там примера заключается в следующем коде

  
  oPForm = CREATEOBJECT('printpreview')  
  oPform.visible = .t.    && Открыть форму в которую пойдет вывод  
 *******  
 * Следующая команда использует опцию IN WINDOW  
 * Заметьте, что использована как опция WINDOW, так и опция IN WINDOW  
 * Опция WINDOW устанавливает для окна предварительного просмотра  
 * те же характеристики, что и у указанного окна, в то время как   
 * опция IN WINDOW говорит о том, внутри какого окна следует открывать  
 * окно предварительного просмотра  
 *******  
  REPORT FORM report_1 PREVIEW WINDOW printpreview IN WINDOW printpreview  
    
 * Класс окна предварительного просмотра  
  DEFINE CLASS printpreview AS form  
    
  ScaleMode = 3  
  Top = 0  
  Left = 0  
  Height = 454  
  Width = 641  
  ShowWindow = 2  
  DoCreate = .T.  
  Caption = "Print Preview Window"  
  Movable = .T.  
  TitleBar = 0  
  WindowState = 0  
  SizeBox = .F.  
  Name = "printpreview"  
    
  ENDDEFINE

Разумеется, Вы можете создать нужный класс в визуальной библиотеке классов. Можете использовать для опции Window одно окно, а для опции IN WINDOW - другое. Это просто пример.

Замечание

Опция IN WINDOW была добавлена только в версии Visual FoxPro 6. Для младших версий FoxPro придется, так или иначе, использовать основное окно FoxPro.

Т.е. перед открытием окна предварительного просмотра отобразить основное окно FoxPro, а после просмотра - закрыть.

  
  _SCREEN.Visible = .T.  
  REPORT FORM MyReport.frx  
  _SCREEN.Visible = .F.



Исправлено: Владимир Максимов, 30.12.06 14:21
Ratings: 0 negative/0 positive


Тема Просмотров Написано Написано
  Report 4818 Владимир Максимов 01.03.05 21:07
  Неустранимая ошибка при выполнении отчета 5254 Владимир Максимов 15.09.05 19:58
  VFP8 некорректно отображает содержимое отчета 7545 Владимир Максимов 18.09.05 09:40
  Как выбрать принтер из окна предварительного просмотра 6289 Владимир Максимов 01.02.06 22:15
  Как отобразить окно предварительного просмотра в As Top-Level форме 5250 Владимир Максимов 01.02.06 22:55
  Как запретить печать из окна предварительного просмотра 4326 Владимир Максимов 01.02.06 23:19
  При запуске отчета из формы формируются неверные данные 6233 Владимир Максимов 24.09.06 10:39


Извините, но у вас нет прав для того, чтобы писать в этом форуме.

On-line: 50 Mitchman  and Guests: 49


© 2006 Fox Club 
Яндекс.Метрика