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


Форумы  :: FAQ FoxPro

Как отобразить окно предварительного просмотра в As Top-Level форме
Дата: 01.02.06 23: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.



Исправлено 1 раз(а). Последнее : Владимир Максимов, 30.12.06 15:21
Ratings: 0 negative/0 positive


Тема Просмотров Написано Написано
  Report 5279 Владимир Максимов 01.03.05 22:07
  Неустранимая ошибка при выполнении отчета 5847 Владимир Максимов 15.09.05 20:58
  VFP8 некорректно отображает содержимое отчета 8266 Владимир Максимов 18.09.05 10:40
  Как выбрать принтер из окна предварительного просмотра 7088 Владимир Максимов 01.02.06 23:15
  Как отобразить окно предварительного просмотра в As Top-Level форме 5824 Владимир Максимов 01.02.06 23:55
  Как запретить печать из окна предварительного просмотра 4959 Владимир Максимов 02.02.06 00:19
  При запуске отчета из формы формируются неверные данные 7005 Владимир Максимов 24.09.06 11:39


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

On-line: 1 (Гостей: 1)

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